1
看來cmake的無法確定哪些庫可與當前的編譯器使用或者更確切地說,我想CMake的對已編譯相同的編譯器只使用庫。CMake外部庫鏈接?
我使用find_library找到需要的庫,但它似乎是無法確定如果庫是實際可用。它設法按名稱查找庫,但是當我爲MinGW進行配置時,它使用「.lib」擴展名。是否必須爲編譯庫的每個編譯器創建文件夾,併爲腳本中的每個編譯器添加if語句?這似乎與我相信find_library能夠做到的直覺相反。也許我在濫用它?任何人有更好的想法?
謝謝你的回覆,你至少回答了我的一些問題。我想知道更多的是如果你正在構建一個64位的可執行文件,那麼如果你有一些變量FIND_LIBRARY_USE_LIB64_PATHS,那麼CMake會自動將任何帶有「/ lib /」的目錄改爲「/ lib64 /」。 – johndoe
確實如此,但僅限於「已知需要它的平臺」,我無法檢查的權利,但我敢肯定的Windows是不是在這個平臺列表(有適用於Windows庫沒有固定的位置反正...) – Guillaume
Accidentially按下輸入,並將其張貼...只允許5分鐘左右的時間內編輯: '如果(MSVC) find_library(MYLIB_LIBRARY MYLIB 路徑 「預置的/ lib目錄,MSVC/MYLIB /」 ELSEIF (MINGW)#呃不知道如何檢查的編譯器(似乎只提供給MSVC ...) find_library(MYLIB_LIBRARY MYLIB 路徑 「預置的/ lib目錄-的MinGW/MYLIB /」 ENDIF() ' 而不是寫如果sta對每個編譯器來說(這看起來似乎有關於檢查它們的方式的idk;至少我見過可以改變的編譯器ID的字符串比較)如果有人知道更好的方法來檢查complrs – johndoe