簡體   English   中英

CMAKE鏈接到系統庫

[英]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.

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