[英]CMAKE linking to system library
我們想用CMAKE
系統構建一個共享庫。 它是這樣的:
lib/
CMakeLists.txt
src/
CMakeLists.txt
module/
CMakeLists.txt
module1.c
foo.c
module1.c
需要一些像librt
這樣的標准共享庫。 我們有
add_library(module module1.c)
target_link_libraries(module rt)
在module/
子目錄中。 但仍然從librt
獲取錯誤仍然是未知的。
如果librt與-lrt鏈接,那么在CMake中你可以用這種方式鏈接它:
target_link_libraries(module -lrt)
實際上你在做什么應該工作。 如果編譯器找不到庫,則可能根本不在標准庫路徑中。 您可以使用以下幫助指定不同的link_directories
(編譯器的-L/some/path
參數)。
cmake --help-command link_directories
調試CMake構建時可以執行的另一個有用的事情是打印出運行編譯器的命令:
make VERBOSE=1
然后,您可以執行命令並手動定制它們以進行工作。 之后,需要修改CMAKE_C_FLAGS
/ include_directories
/ link_directories
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.