Die Antwort auf Ihre Frage nach der Regel ab, die für die Erstellung der C++ Dateien verwendet wird. Da Sie Ihr Makefile nicht freigeben möchten, erkläre ich dies mit der impliziten Standardregel für C++ - Programme.
können Sie außer Kraft setzen jede Variable machen, sagen 'MY_VAR' durch wie diese machen Aufruf: make MY_VAR = 'Hallo'
Das Standardrezept für die Erstellung C++ ähnlich sieht so aus:
%.o : %.cpp
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o [email protected]
CPPFLAGS sind per Konvention die an den C- und C++ - Präprozessor übergebenen Flags, CXXFLAGS sind für die C++ - Kompilierung relevant.
Also nehme ich an Sie setzt CXXFLAGS Makefile können wie folgt sagen:
CXXFLAGS = -O3
Sie es wollen -O0 sein, Sie können so CXXFLAGS außer Kraft setzen.
Anruf wie folgt aus:
make -j20 TGT=stuff CXXFLAGS='-O0'
Da Sie Sie debuggen möchten wahrscheinlich verwenden sollten:
make -j20 TGT=stuff CXXFLAGS='-O0 -g'
Wenn die Standardeinstellung für CXXFLAGS von Ihrem Make-Datei andere wichtige Flags enthält würden Sie angeben müssen auch diese - Sie überschreiben ihren Wert. auch
Siehe: https://www.gnu.org/software/make/manual/html_node/Overriding.html
Das Make Handbuch wirklich gut ist, kann ich nur empfehlen, einen Blick.
Dies hängt davon ab, wie das Makefile geschrieben wird. Kannst du relevante Auszüge aus dem Makefile posten? – juppman
leider nicht, aber ich kann sagen, was 'CPPFLAGS' auf – statquant
festgelegt ist Nach https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html die" letzte solche Option ist die, die wirksam ist "(in Bezug auf O-Flags). Wenn Sie also eine Möglichkeit finden, -O0 zu einer Variablen hinzuzufügen, die später im Befehl als das -O3-Flag hinzugefügt wird, sollte es funktionieren. Das ist, wenn Sie gcc ... verwenden – juppman