歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux維護 >> Linux編譯link時提示undefined reference’dlclose’怎麼辦?

Linux編譯link時提示undefined reference’dlclose’怎麼辦?

日期:2017/3/2 10:27:07   编辑:Linux維護

在Linux系統下編譯link時出現了錯誤,提示“undefined reference’dlclose@xxx函數”錯誤,相信不少用戶也遇到這個問題,這個問題不難解決,下面小編給大家介紹下undefined reference錯誤的解決方法。

編譯完link的時候,報了一句undefined reference’dlclose@xxx函數‘,找主程過來看了下,說是dl庫沒有包進去,查了下dl庫是用來做動態庫加載的(dynamic load),項目用到了libmysqld.so,加了之後還是有問題,將-ldl鏈接選項改到最後才可以。

比較常見的undefined reference問題:

1.dl庫

undefined reference to ‘dlerror’

undefined reference to ‘dlopen’

undefined reference to ‘dlerror’

增加-ldl鏈接選項 (-l是鏈接選項的前綴)

2.pthread庫

undefined reference to ‘pthread_create’

undefined reference to ‘pthread_xxxx‘

增加-lpthread鏈接選項

3.rt庫

undefined reference to `clock_gettime’

增加-lrt鏈接選項

如果是使用codeblocks,可以再link option裡加,不過因為依賴順序的問題,如果link option裡加了還是報錯,直接在link file裡添加pthread dl rt等即可

如果是你自己的庫出現這undefined reference什麼函數,先去查下庫的源代碼,看看具體問題。

上面就是Linux編譯link出錯的解決方法介紹了,本文除了介紹link出錯外,還總結了一些undefined reference問題,希望對你有所幫助。

Copyright © Linux教程網 All Rights Reserved