[英]Interdependancy of C++ libraries with CMake
在如此遙遠的環境下,如何處理CMake文件以及如何處理依賴順序? (請參閱我與問題“ 奇怪的錯誤:未定義對`class :: class()'的引用”相關的上一個問題)。
例如,如果您有一個依賴於庫B的庫A,而庫B又依賴於庫C,那么您將進行編碼
add_library({MY_LIB} A B C)
如何不被迫遵守命令? 在不久之前,我只是做了
target_link_libraries({MY_LIB} {MY_LIB})
但是,這不再對我有用。...我不知道為什么(???)。 因為我有大量相互依賴的庫,所以這個問題很煩人。
請提出任何建議(在Ubuntu 4.8.4-2ubuntu1〜14.04.3上使用cmake 3.5.2,gcc版本4.8.4)?
一個add_library
命令創建每個庫,然后設置與依賴target_link_libraries
應該夠了。
就您而言,例如
add_library(A ${sources_for_A})
add_library(B ${sources_for_B})
add_library(C ${sources_for_C})
target_link_libraries(A B) # A depends on B
target_link_libraries(B C) # B depends on C
# Executable using the libraries
add_executable(program ${sources_for_program})
target_link_libraries(program A) # Program uses library A (and B and C indirectly)
庫是STATIC
還是SHARED
都沒有關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.