gpt4 book ai didi

build - CMake 用/MTd 覆盖我的/MDd 标志

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

这个问题在这里已经有了答案:





Compile with /MT instead of /MD using CMake

(5 个回答)


去年关闭。




我在 stackoverflow 上读过类似的问题,但没有一个答案能解决我的问题。

我需要用 /MDd 编译标志,这是我的 CMake 命令:(注意粗体 /MDd 标志)

cmake -G "NMake Makefiles" -DCMAKE_INSTALL_PREFIX=C:/temp -DCMAKE_C_FLAGS="-Zi -W4 -WX- -Od -Oy- -D_WIN32 -DWIN32=1 -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -D_CRT_SECURE_NO_WARNINGS=1 -D_SCL_SECURE_NO_WARNINGS=1 -D_MBCS -GF- -Gm -EHsc -RTCc -RTC1 -MDd -GS -Gy- -Qpar- -fp:precise -fp:except -Zc:wchar_t -Zc:forScope -GR -Gd -analyze- -errorReport:prompt"



这是执行 时的输出nmake :

cl : Command line warning D9025 : overriding '/MDd' with '/MTd'
cl : Command line warning D9025 : overriding '/W4' with '/W3'


有人可以启发我了解我在这里做错了什么吗?

最佳答案

你可能会发现在你的 CMakeLists.txt 的某个地方你有这样的东西:

set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /W3 /MTd")

CMake 附加特定于构建的 CMAKE_C_FLAGS_DEBUG给将军的旗帜 CMAKE_C_FLAGS ,因此最终传递给编译器的标志列表包含:
... /MDd ... /MTd ...... /W4 ... /W3 ... .

最右边的值会覆盖之前的值并生成警告。要解决此问题,您只需修改 CMakeLists.txt 以不应用那些不正确的标志。

不太可能是变量 CMAKE_C_FLAGS正在 CMakeLists.txt 中进行操作,但您也可以随时检查。

关于build - CMake 用/MTd 覆盖我的/MDd 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25305804/

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