gpt4 book ai didi

visual-c++ - Visual Studio 中的 CMake 项目给出标志覆盖警告(命令行警告 D9025 : overriding '/W4' with '/w' )

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

我有一个 CMake 项目,我正在使用 Microsoft Visual Studio 2019 构建它。我正在尝试修复和删除所有警告,但有一种类型我无法禁用或修复。

它们都属于以下类型:

Command line warning D9025: overriding '/W4' with '/w'
Command line warning D9025: overriding '/W3' with '/W4'

我尝试修复它们,但我无法找出导致所有这些问题的原因。

我的问题是:

如何使用 CMake 禁用警告?或者有没有可靠的方法来找到它们的根本原因并修复它们?

最佳答案

此问题已被提出( herehere ),根据您的 CMake 版本,有几个解决方案。

使用 CMake 为 MSVC 构建时,默认情况下会添加编译器警告标志(如 /W3 )。在 CMake 3.15 中,CMake 引入了 fix为此,不再自动添加编译器警告标志,因此不应再出现警告。从文档:

CMake 3.15 and above prefer to leave out warning flags from the value of CMAKE_<LANG>_FLAGS by default.



与此修复一起,CMake 引入了策略 CMP0092 ,它允许您切换回 OLD如有必要,行为(默认情况下添加警告标志)。

如果您绑定(bind)到 3.15 之前的 CMake 版本,您可以手动操作 CMAKE_<LANG>_FLAGS 使用 CMake 的 regular expressions 自己替换警告的变量.你可以尝试这样的事情:
string(REGEX REPLACE "/W[3|4]" "/w" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")

关于visual-c++ - Visual Studio 中的 CMake 项目给出标志覆盖警告(命令行警告 D9025 : overriding '/W4' with '/w' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58708772/

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