2014-05-01 7 views
21

Das Projekt, das ich die Standard-FlagsAnfügen kompilieren Flags CFLAGS und CXXFLAGS während der Konfiguration/machen

CFLAGS = -Wall -g -O2 

CXXFLAGS = -g -O2 

ich diese Variablen ein Flag -w sowohl anhängen müssen aufzubauen versuche muss (entfernen: ‚alle betrachten Warnungen als Fehler)

ich eine Methode, es zu erarbeiten, geben

make 'CFLAGS=-Wall -g -O2 -w'; 'CXXFLAGS=-g -O2 -w' 

OR

Run ./configure und statisch Makefile

ändern Aber ich möchte, dass meine Optionen mit den vorhandenen Optionen anhängen, während configure oder make

Der Beitrag Where to add a CFLAG, such as -std=gnu99, into an autotools project verwendet bequem ein Makro ausgeführt wird, dies zu erreichen.

Antwort

33

Sie haben es fast richtig; Warum hast du das Semikolon hinzugefügt?

es auf der configure Linie zu tun:

./configure CFLAGS='-g -O2 -w' CXXFLAGS='-g -O2 -w' 

es auf der make Linie zu tun:

make CFLAGS='-g -O2 -w' CXXFLAGS='-g -O2 -w' 

jedoch, die nicht wirklich alle Warnungen als Fehler der Auffassung ist, zu entfernen; Das entfernt alle Warnungen. Die Angabe von -Wall und -w ist daher nicht sinnvoll. Wenn Sie die Warnungen beibehalten möchten, sie jedoch nicht als Fehler betrachten möchten, verwenden Sie die Flags -Wall -Wno-error.

Alternativ haben die meisten configure Skripte, die -Werror standardmäßig aktivieren, auch ein Flag wie --disable-werror oder ähnliches. Führen Sie ./configure --help und sehen, ob es so etwas gibt.

+1

Gibt es eine Möglichkeit für mich, diese statische Zeit nicht zu spezifizieren, wie, CFLAGS = '$ CFLAGS ', um zu behalten, was bereits konfiguriert ist und ohne es zu wissen. – Vigneshwaren

+1

Nein, das ist nicht möglich (zumindest nicht ohne das Makefile zu ändern). Gemäß den Autoconf-Codierungsstandards aktiviert der Standardwert von "CFLAGS" immer nur das Debuggen/Optimieren, so dass er für die meisten Systeme normalerweise immer "-g-O2" sein sollte. Es ist nicht korrekt (gemäß den Codierungsstandards), andere wichtige Flags wie "-I", "-D" usw. in "CFLAGS" einzufügen. Es sollte also sicher sein, es immer einfach zu überschreiben. – MadScientist

+0

Wenn Sie CFLAGS nicht zuweisen können, ohne die Standardeinstellungen des Pakets beizubehalten, enthält die Softwarepaketierung einen Fehler, der an den Paketverwalter gemeldet werden sollte. –

Verwandte Themen