gpt4 book ai didi

c++ - cmake:CMAKE_REQUIRED_FLAGS 和以 "/D"开头的标志

转载 作者:行者123 更新时间:2023-11-28 02:01:51 32 4
gpt4 key购买 nike

我正在尝试使用 CMake 交叉编译一个库。目标平台是非标准的。该库有几个 try_compile 命令。特别是, CheckTypeSize.cmake 中的那些失败了。为了编译成功,我需要更改那些 try_compile 命令使用的标志和链接库(我不想修改 CMake 安装)。似乎在该模块中使用了(未记录的)CMAKE_REQUIRED_LIBRARIESCMAKE_REQUIRED_FLAGS。在工具链文件中,我这样做:

set(CMAKE_REQUIRED_FLAGS "/DLL")

不幸的是,我想设置一个以 /D 开头的标志(在本例中为 /DLL)。当我这样做时,变量被翻译成 /D LL。有没有什么方法可以向 CMake 指示不应将字符串解析为编译定义?

最佳答案

将我的评论变成答案

请不要使用内部 CMake 命令。我在你的情况下的建议 - try_compile 在交叉编译环境中不工作并且链接器抛出错误 - 是更新到 CMake 3.6 并添加

set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)

然后 CMake 的 try_compile 将只尝试静态库链接(而不是可执行文件)。

引用资料

关于c++ - cmake:CMAKE_REQUIRED_FLAGS 和以 "/D"开头的标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39130265/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com