【问题标题】:cc1: error: command line option ‘-std=c++11’ is valid for C++/ObjC++ but not for C [-Werror]cc1:错误:命令行选项“-std=c++11”对 C++/ObjC++ 有效,但对 C 无效 [-Werror]
【发布时间】:2017-06-16 02:50:39
【问题描述】:

编译 nginx 时,我需要 C++ 模块的 -std=c++11 标志。如果我用--with-cc-opt="-std=c++11" 配置nginx,然后make。它给了我标题中描述的错误。如何在不修改 nginx 源代码或编译器(现在是 gcc 4.8)版本的情况下编译它?

【问题讨论】:

  • Nginx 源代码是 C,构建系统使用 C 编译器编译。 -std=c++11 是 C++ 编译器的标志。
  • @BorkoJandras 该标志用于用 c++ 编写的模块。
  • 配置脚本帮助说:--with-cc-opt=OPTIONS set additional C compiler options。这意味着该标志也将用于 C 源代码
  • @BorkoJandras 这个任务不是关于--with-cc-opt,而是关于为用c++编写的nginx模块设置-std=c++11标志。

标签: c++11 gcc nginx


【解决方案1】:

根据文档:“--with-cc-opt=parameters - 设置将添加到 CFLAGS 变量的附加参数。”

CFLAGS 允许为 C 编译器添加开关,而 CXXFLAGS 旨在在调用 C++ 编译器时使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 2017-04-09
    • 2015-02-05
    • 2014-07-06
    • 1970-01-01
    相关资源
    最近更新 更多