萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux編譯link時提示undefined reference’dlclose’怎麼辦?

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

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

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

  編譯完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 © 萬盛學電腦網 all rights reserved