gcc 4.8.2 cc1plus: error: unrecognized command line option "-std=gnu++11"

gcc 4.8.2 cc1plus: error: unrecognized command line option "-std=gnu++11"

我有一个系统,在这个系统中我一直在使用 automake 使用 C++11 编译程序并且一切正常。

但是,当不同的用户使用完全相同的 Makefile 时,他们会收到上述错误。

现在,如果他们输入 g++ --std=gnu++11 program.cpp 那么就没有投诉了。

我已将范围缩小到引起问题的那一行;但是,我不知道如何解决它。

depbase=`echo no_endl.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        g++ -DHAVE_CONFIG_H -I. -I../..    -g --std=gnu++11 -g -O2 -MT no_endl.o -MD -MP -MF $depbase.Tpo -c -o no_endl.o no_endl.cpp &&\
        mv -f $depbase.Tpo $depbase.Po

问题出在depbase;但是,我不知道它是怎么回事,也不知道它为什么会在那里。

下面是我用来生成 Makefile 的 Automake 文件:

bin_PROGRAMS = no_endl
AM_CXXFLAGS = -g --std=gnu++11
no_endl_SOURCES = no_endl.cpp

我的 g++ 和他们的 g++ 之间的唯一区别是我有一个别名,所以 g++ 变成 g++ -g

有用的信息

g++ --version                                                          
g++ (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

如果我需要提供任何其他信息,请告诉我。

Related Question

您可能需要以下额外的 m4 宏文件来处理替代 C++11 编译器的特殊情况。

https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html#ax_cxx_compile_stdcxx_11

我解决了问题。

问题是我和其他用户的 $PATH 个变量。

现在,其他用户有一个 g++ 到较新版本的别名,但他们的 $PATH 忽略了实际位置。

根据他们的 $PATH 变量制作作品,因此要修复它,我只需要确保他们的路径与我的路径具有相同的位置。