cmake之 第三方庫始終報錯 /usr/bin/ld: cannot find -lxxx?
為什么自己要添加始終?感覺很奇怪?
加載第三方庫對于一個程序是很經(jīng)常碰到的事情。
首先,自己應該很清楚第三方庫的位置哈。將庫添加到工程中。
#注意:動態(tài)庫簡寫,全稱均可;靜態(tài)庫要全稱。
TARGET_LINK_LIBRARIES(main hello)
#TARGET_LINK_LIBRARIES(main libhello.a)
1
2
3
此時,編譯報錯/usr/bin/ld: cannot find -lxxx
使用cmake提供的LINK_DIRECTORIES指定第三方庫路徑。
LINK_DIRECTORIES(/usr/lib/hello)
1
編譯,再次報錯/usr/bin/ld: cannot find -lxxx?
通過分析官方文檔,發(fā)現(xiàn)這個問題其實是代碼的順序問題,務必LINK_DIRECTORIES 要放在ADD_EXECUTABLE() or ADD_LIBRARY()前面。
官方文檔:
https://cmake.org/cmake/help/v3.5/command/link_libraries.html
ok
————————————————
最終解決: 竟然是不用-l 不知道是不是和cmake 版本有問題。
target_link_libraries(cyber_demo -lcyber libcrypto.a libssl.a -lpthread)
原文鏈接:https://blog.csdn.net/weixin_39956356/article/details/100412382
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。