【发布时间】:2016-08-24 18:09:53
【问题描述】:
我正在尝试使用 CMake 交叉编译一个库。目标平台是非标准的。库中有几个try_compile 命令。特别是 CheckTypeSize.cmake 中的那些失败了。为了使编译成功,我需要更改那些try_compile 命令使用的标志和链接库(并且我不想修改 CMake 安装)。似乎在该模块中使用了(未记录的)CMAKE_REQUIRED_LIBRARIES 和 CMAKE_REQUIRED_FLAGS。在工具链文件中,我这样做:
set(CMAKE_REQUIRED_FLAGS "/DLL")
不幸的是,我想设置一个以/D 开头的标志(在本例中为/DLL)。当我这样做时,变量被翻译成/D LL。有什么方法可以向 CMake 表明不应将字符串解析为编译定义?
【问题讨论】:
-
向我们展示一些最少的代码,您使用的哪个模块包含未记录的内容?
-
好吧,我只是说 CMAKE_REQUIRED_FLAGS 没有记录在公共文档中,只是在那些 cmake(内部)模块文件的开头。
-
@Florian - 解决了我的问题 - 将其添加为答案,我会接受。
标签: c++ cmake cross-compiling