gpt4 book ai didi

c++ - CMake 删除/arch :sse2 for Visual Studio 2013

转载 作者:行者123 更新时间:2023-11-30 05:41:37 25 4
gpt4 key购买 nike

我现在正在处理的项目使用 CMake 生成 x64 visual studio 2010 项目。目前我正在将它转换为 x64 visual studio 2013。

大多数一切都已正确就位,但我收到以下警告:

cl:命令行警告 D9002:忽略未知选项“/arch:SSE2”

追踪这个问题,看起来 visual studio 2013 不再支持 x64 项目的 /arch:SSE2,因为它是默认使用这个扩展。

我已经搜索了我们的各种 CMakeLists.txt(我们在每个项目中都有,一个用于整个解决方案),我们没有设置标志,所以我假设这是在 CMake 中默认设置的。

在 visual studio 中,我可以转到 project > properties > C/C++ > Code Generation > Enable Enhanced Instruction Set 并将其设置为“Not Set”,一切正常,没有任何警告。

如何从 CMakeLists.txt 中执行此操作?

我见过几种设置变量的方法,通常类似于 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}/arch:SSE2"),但这不能用于删除一个标志(至少我不知道)。

最佳答案

您可以尝试使用 string manipulation 删除此标志:

string(REPLACE "/arch:SSE2" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})

如果这不起作用,则尝试使用临时变量:

string(REPLACE "/arch:SSE2" "" OUT_VAR ${CMAKE_CXX_FLAGS})
set(CMAKE_CXX_FLAGS ${OUT_VAR} CACHE)

关于c++ - CMake 删除/arch :sse2 for Visual Studio 2013,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31091964/

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