gpt4 book ai didi

cmake - 使用CMake使用/MT而不是/MD进行编译

转载 作者:行者123 更新时间:2023-12-02 23:33:49 27 4
gpt4 key购买 nike

我在 Windows 上使用 CMake 以及 Windows SDK 和 NMake Makefile。

默认情况下,它使用 /MD 编译器开关进行编译。

如何将其更改为使用 /MT 开关进行编译?

最佳答案

您可以修改 CMAKE_<LANG>_FLAGS_<CONFIG> 变量:

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")

如果您的 CMake 标志已包含 /MD ,您可以确保上述命令在/MD之后执行。被插入(后来添加 /MT 会覆盖冲突的现有选项),或者您可以从头开始设置标志:

set(CMAKE_CXX_FLAGS_RELEASE "/MT")
set(CMAKE_CXX_FLAGS_DEBUG "/MTd")

或者,您可以替换现有的 /MD/MDd值为 /MT/MTd分别通过执行以下操作:

set(CompilerFlags
CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_RELEASE
CMAKE_C_FLAGS
CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_RELEASE
)
foreach(CompilerFlag ${CompilerFlags})
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
endforeach()

关于cmake - 使用CMake使用/MT而不是/MD进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14172856/

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