博客專欄

EEPW首頁(yè) > 博客 > cmake之 第三方庫(kù)始終報(bào)錯(cuò) /usr/bin/ld: cannot find -lxxx?

cmake之 第三方庫(kù)始終報(bào)錯(cuò) /usr/bin/ld: cannot find -lxxx?

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

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

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

首先,自己應(yīng)該很清楚第三方庫(kù)的位置哈。將庫(kù)添加到工程中。


#注意:動(dòng)態(tài)庫(kù)簡(jiǎn)寫(xiě),全稱均可;靜態(tài)庫(kù)要全稱。

TARGET_LINK_LIBRARIES(main hello)

#TARGET_LINK_LIBRARIES(main libhello.a)

1

2

3

此時(shí),編譯報(bào)錯(cuò)/usr/bin/ld: cannot find -lxxx

使用cmake提供的LINK_DIRECTORIES指定第三方庫(kù)路徑。


LINK_DIRECTORIES(/usr/lib/hello)

1

編譯,再次報(bào)錯(cuò)/usr/bin/ld: cannot find -lxxx?

通過(guò)分析官方文檔,發(fā)現(xiàn)這個(gè)問(wèn)題其實(shí)是代碼的順序問(wèn)題,務(wù)必LINK_DIRECTORIES 要放在ADD_EXECUTABLE() or ADD_LIBRARY()前面。


官方文檔:

https://cmake.org/cmake/help/v3.5/command/link_libraries.html


ok

————————————————


最終解決: 竟然是不用-l  不知道是不是和cmake 版本有問(wèn)題。

target_link_libraries(cyber_demo -lcyber libcrypto.a libssl.a -lpthread)

                        

原文鏈接:https://blog.csdn.net/weixin_39956356/article/details/100412382


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: cmake

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

關(guān)閉