2016-09-14 2 views
0

J'ai un système dans lequel j'ai compilé des programmes avec C++ 11 en utilisant automake et tout a fonctionné. Cependant, lorsqu'un utilisateur différent prend le même Makefile exact, il obtient l'erreur mentionnée ci-dessus.gcc 4.8.2 cc1plus: erreur: option de ligne de commande non reconnue "-std = gnu ++ 11"

Maintenant, s'ils tapent g++ --std=gnu++11 program.cpp alors il n'y a pas de plaintes. Je l'ai réduit à une ligne qui cause le problème; Cependant, je ne sais pas comment le réparer. Le problème est avec depbase; Cependant, je ne sais pas ce qui se passe avec ou pourquoi il est là.

Ci-dessous le fichier Automake que j'utilisé pour générer le Makefile:

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

La seule différence entre mon g ++ et leur g ++ est que j'ai un alias pour g++ se transforme en g++ -g.

Informations utiles

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. 

En cas de toute autre information que je dois fournir, alors laissez-moi savoir.

Related Question

+2

Je pense qu'il ne devrait pas y avoir un double tiret dans le commutateur juste un -std = ... ' – Radek

Répondre

0

Je résolu le problème.

Le problème était les variables $PATH pour moi et d'autres utilisateurs.

Maintenant, les autres utilisateurs ont un alias pour g++ à la version plus récente, mais leur $PATH omet l'emplacement réel.

Faire des travaux basés sur leur variable $PATH, donc pour le réparer, je devais juste m'assurer que leur chemin avait le même emplacement que le mien.

0

Vous devez probablement le fichier macro m4 supplémentaire suivante qui gère les cas d'angle de 11 substitués compilateurs C++.

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

+0

Comme je l'ai dit, si je fais juste g ++ --std = g ++ 11 alors je vais bien. – SailorCire

+0

Les fichiers make for for me et g ++ --std = gnu ++ 11 sur la ligne de commande pour eux fonctionnent, mais les fichiers make ne fonctionnent pas pour eux. – SailorCire