Je suis capable de compiler un seul fichier à l'aide de GCC avec -std = C ++ 0X Option. Mais je ne peux pas faire cela à travers makefile. Voici l'ensemble des drapeaux dans mon maquillage (qui après la plainte sur les mots-clés C ++ 11): Qu'est-ce que je manque? P> CXXFLAGS=-O3 -std=c++0x -pg -D_DEBUG -g -c -Wall
3 Réponses :
De cette façon, votre fabricant utilisera tous vos CFLAGS CODE>:
CFLAGS=-O3 -std=c++0x -pg -D_DEBUG -g -c -Wall
Si vous écrivez cflags + = ... code> L'utilisateur peut donner ses propres cflags avec
cflags = "..." faire code>
@Floriansoade Great, ajouté que à la réponse;)
Florian: Ce n'est pas vrai. Affectations variables sur les paramètres de remplacement de la ligne de commande dans le maquillage complètement, même + = paramètres de style. Le meilleur moyen (et le plus portable) de gérer cela est d'utiliser une variable différente pour les drapeaux internes et de laisser cflags code> /
cxxflags code> pour la personne invoquant la marque.
+1 pour CXXFLAGS code>! Cette chose funky m'a foncé dans un état de foncusion #notypo
Vous pouvez le garder dans plusieurs lignes, mais vous voulez probablement appendez em>, pas à Attribuer em>:
Où avez-vous reçu ce gâchis? Ce fabricant était faux bien avant de le modifier pour C ++ 11.
Commençons par la première ligne: P> Essayez d'exécuter la commande Peut-être que vous vouloir ceci: p> qui exécute seulement deux processus (uname et sed) non pas quatre (deux noms, echo et SED) p> si vous utilisez GNU fait qu'il devrait être p> donc il est seulement exécuté une seule fois. P> Qu'est-ce que echo `Uname -s`-`uname -m` code> et vous verrez si aucun espaces dans de toute façon, quel est le point dans la commande
sed code>? p>
cc code >? P>
print-vars:
echo CFLAGS is $(CFLAGS)
echo LDFLAGS is $(LDFLAGS)
Merci pour la réponse. C'est une énorme base de code héritée, et je n'ai pas vraiment pris la peine de modifier le maquillage jusqu'à présent que je devais activer C ++ 11. J'ai corrigé le problème des drapeaux écrasants comme indiqué dans mon édition.
Vous voulez probablement
cflags + = trucs code>, pas
cflags = truc code>.
Pourquoi avez-vous plusieurs CFLAGS? Pourquoi pas seulement "cflags = -o3 -std = c ++ 0x -pg -d_debug -g -c -wall"?
Je l'ai changé à ce qui suit, mais je reçois toujours des erreurs de compilation, que je ne reçois pas avec l'invocation de la ligne de commande GCC. Cxxflags = -O3 -STD = C ++ 0x -pg -d_debug -g -c -wall
Quelle est la ligne de commande imprimée lorsque g ++ est appelée? Quelles sont les erreurs que vous obtenez?