【问题标题】:Visual C: language modes specified are incompatibleVisual C:指定的语言模式不兼容
【发布时间】:2022-07-22 00:58:38
【问题描述】:

在 C 代码上使用 VisualStudio 2019:

当我将 C 语言规范设置为 Legacy 以外的任何内容时...

...然后我得到:

我尝试了不同的 C++/C 规范组合(即使我只有 C 文件,所以 C++ 应该无关紧要)但我总是收到此错误。

令人讨厌的是,这个错误告诉我的很少。 哪些模式不兼容?如何从编译器中得到更详细的错误?

至少,它可以告诉我哪些标志不能混合。 这是命令行:

/GS /W3 /Zi /Od /fp:precise /D "_DEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_WARNINGS" /D "_UNICODE" /D "UNICODE" /WX- /std:c11 /Gd /MDd /Fa"x64\Debug\" /EHsc /nologo /Fo"x64\Debug\" /Fp"x64\Debug\turboledzservice.pch" /diagnostics:column 

【问题讨论】:

  • 一个猜测......它不喜欢命令行上的/std:c11,即使它与菜单项相同。如果您不使用命令行选项,会发生什么?或者,使用旧菜单选项并添加 /std:c11 测试程序中是否有一些对 c11 或更高版本有效(例如 stdatomic.h 和一些功能)?然后,您知道它处于正确的模式。是的,它应该告诉你它不喜欢哪些选项。但是,它毕竟是 MS ;-) 您可以编写一个脚本来循环并逐个添加 [或减去] 选项。或者,某种二进制搜索。

标签: c visual-c++ visual-studio-2019


【解决方案1】:

我注意到如果你有类似的东西会出现这个问题

<LanguageStandard>...</LanguageStandard>

在 Linux C++ 项目中。如果您为 Linux 项目禁用 LanguageStandard,它会得到修复。

(注意这与CppLanguageStandard 不同,用于Linux 项目。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2016-10-13
    • 1970-01-01
    • 2014-04-12
    • 2015-03-09
    • 2012-10-11
    • 1970-01-01
    相关资源
    最近更新 更多