這是因?yàn)槟承毂热?code>libxxx.so在編譯時(shí)沒有找到,排查時(shí)有以下幾個(gè)思路:
-
libxxx.so
文件是否確實(shí)存在 -
libxxx.so
存放目錄是否已經(jīng)包含進(jìn)項(xiàng)目 - 可以通過以下命令查看系統(tǒng)如何查找
libxxx.so
文件的具體路徑
ld -lxxx --verbose
以lpthread
為例,如下系統(tǒng)在第四次查找時(shí)找到了對應(yīng)的文件:文章來源:http://www.zghlxwxcb.cn/news/detail-522330.html
ld -lpthread --verbose
# 系統(tǒng)查找路徑如下:
ld: mode elf_x86_64
attempt to open /usr/local/lib/x86_64-linux-gnu/libpthread.so failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libpthread.a failed
attempt to open /lib/x86_64-linux-gnu/libpthread.so failed
attempt to open /lib/x86_64-linux-gnu/libpthread.a succeeded
附一些常見gcc參數(shù)備忘:文章來源地址http://www.zghlxwxcb.cn/news/detail-522330.html
-c 只編譯并生成目標(biāo)文件
-IDIRECTORY 指定頭文件搜索路徑為DIRECTORY,即.h文件所在目錄
-LDIRECTORY 指定額外庫函數(shù)的搜索路徑為DIRECTORY,即.so文件所在目錄
-lLIBRARY 指定額外庫函數(shù)的LIBRARY,用了libcurl.so就要添加 -lcurl
-o 指定生成文件
-shared 生成共享目標(biāo)文件,即生成.so文件
-g debug版本
-w 不生成警告
-Wall 生成警告
到了這里,關(guān)于ld: cannot find -lxxx終極解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!