首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMake用/MTd覆盖/MDd标志

CMake用/MTd覆盖/MDd标志
EN

Stack Overflow用户
提问于 2014-08-14 10:26:38
回答 1查看 6.5K关注 0票数 6

我读过类似的关于堆叠溢出的问题,但是没有一个答案解决了我的问题。

我需要使用/MDd标志进行编译,下面是我的CMake命令:(注意粗体的/MDd标志)

cmake -G "NMake Makefiles“-DCMAKE_NMake_-DCMAKE_C_FLAGS==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 -Gy - Qpar- en22-Zc:forScope -GR -Gd -analyze -errorReport:prompt“

这是执行nmake时的输出:

cl :命令行警告D9025 :重写'/MDd‘和'/MTd’cl :命令行警告D9025 :用'/W3‘覆盖'/W4’

有人能告诉我我在这里做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-14 21:13:56

您可能会发现,在您的CMakeLists.txt中,您可能会发现以下内容:

代码语言:javascript
复制
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中被操作的可能性较小,但您也可以随时检查它。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25305804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档