提問時間: 2016年10月20日
最佳答案: 兩種方法 一種是在windows安裝linux的虛擬機,然後編譯 一種是簡單編譯,用win 10自帶的bash進行編譯
㈡ Linux編譯link時提示undefined reference』dlclose』怎麼辦
在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問題,希望對你有所幫助。