【问题标题】:How to pass -std=c99 to g++?如何将 -std=c99 传递给 g++?
【发布时间】:2011-09-19 08:48:55
【问题描述】:

我的 cpp 文件包含 C 标头,该标头末尾有一个带逗号的枚举器。结果 g++ 产生警告:

警告:枚举数列表末尾的逗号

我如何告诉 g++ 使用 -std=c99 来处理该 cpp 文件?也就是说,我怎样才能避免这个警告?

我已经尝试过:-std=c99,但结果是:“cc1plus: 警告:命令行选项“-std=c99”对 C/ObjC 有效,但对 C++ 无效”

注意:C 头文件的包含被 extern "C" 命令包围。

【问题讨论】:

    标签: gcc compiler-errors g++


    【解决方案1】:

    你没有。 g++ 编译 C++,而不是 C。C++ 源文件中包含的 C 头文件仍然必须遵循 C++ 规则,即使使用 extern "C"。例如,标头不能使用class作为标识符。

    【讨论】:

      【解决方案2】:

      #include 只需将包含文件的文本插入到#include 行出现的位置即可。预处理的结果是单个文本文件,然后将其发送给编译器,您无法更改文件中间的语言。

      由于您的 cpp 文件被编译为 C++ 代码,因此它包含的头文件也将被编译。 extern "C" 不改变语言;它只是告诉 C++ 编译器,其中声明的函数使用 C 调用约定。

      【讨论】:

        猜你喜欢
        • 2017-03-26
        • 1970-01-01
        • 1970-01-01
        • 2011-08-28
        • 2015-09-17
        • 2015-09-03
        • 1970-01-01
        • 2022-12-31
        • 2015-09-26
        相关资源
        最近更新 更多