簡體   English   中英

CMake鏈接到共享庫找不到​​庫

[英]Cmake linking to shared library cannot find library

在Ubuntu上,我有兩個目錄: buildsrc src ,我的CMakeLists.txt文件包含以下行:

add_executable(Test main.cpp)

target_link_libraries(Test libCamera.so)

在構建目錄( cmake ../src )中運行cmake之后,然后將庫文件libCamera.so復制到構建目錄中。 運行make之后, main.cpp.o文件成功編譯,但是在鏈接期間出現以下錯誤:

/usr/bin/ld: cannot find -lCamera

為什么是這樣? 共享庫位於我正在構建的目錄中...如果將庫復制到/usr/bin也會發生相同的事情...

您不應在庫中添加前綴lib和后綴.so ,因此只需使用:

target_link_libraries(Test Camera)

如果找不到您的庫,則可能需要添加目錄,該目錄位於庫所在的位置:

link_directories( /home/user/blah ) # for specific path
link_directories( ${CMAKE_CURRENT_BINARY_DIR} ) # if you put library where binary is generated

注意:您將lib復制到/usr/bin但是與Windows(其中dll文件存儲有可執行文件)不同,在Linux中不是這樣,因此它將是/usr/lib ,而不是/usr/bin 另外,您可以更改LD_LIBRARY_PATH變量,以使程序在自定義位置中查找庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM