0
我想用CMake交叉編譯一個庫。目標平臺是非標準的。該庫有幾個try_compile
命令。特別是CheckTypeSize.cmake中的失敗。要編譯成功,我需要更改那些try_compile
命令使用的標誌和鏈接庫(並且我不想修改CMake安裝)。看起來好像在該模塊內使用了(未記錄的)CMAKE_REQUIRED_LIBRARIES
和CMAKE_REQUIRED_FLAGS
。在工具鏈文件,我做的:cmake:CMAKE_REQUIRED_FLAGS和以「/ D」開頭的標誌
set(CMAKE_REQUIRED_FLAGS "/DLL")
不幸的是,我想設置與/D
開始的標誌(在這種情況下/DLL
)。當我這樣做時,變量被翻譯成/D LL
。有什麼方法可以向CMake表明該字符串不應該被解析爲一個編譯定義?
向我們展示一些最起碼的代碼,你在使用已無證東西模塊? – usr1234567
好吧,我的意思是CMAKE_REQUIRED_FLAGS沒有記錄在公共文檔中,只在那些cmake(內部)模塊文件的開頭。 – MuertoExcobito
我的建議是更新到CMake 3.6並添加'set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)'。另見[這裏](http://stackoverflow.com/questions/38700198/how-to-partially-disabling-cmake-cc-custom-compiler-checking)和[這裏](http://stackoverflow.com/questions/37931068 /告訴-的cmake使用的-C編譯器換C-文件 - 未來從 - cmake的)。 – Florian