博客專欄

EEPW首頁 > 博客 > cmake之 第三方庫始終報錯 /usr/bin/ld: cannot find -lxxx?

cmake之 第三方庫始終報錯 /usr/bin/ld: cannot find -lxxx?

發(fā)布人:電子禪石 時間:2024-11-14 來源:工程師 發(fā)布文章

為什么自己要添加始終?感覺很奇怪?

加載第三方庫對于一個程序是很經(jīng)常碰到的事情。

首先,自己應(yī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)這個問題其實是代碼的順序問題,務(wù)必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)系工作人員刪除。



關(guān)鍵詞: cmake

技術(shù)專區(qū)

關(guān)閉