Comment puis-je désactiver l’optimisation GCC lors de l’utilisation de makefiles?

Je viens juste de commencer à apprendre Linux et j’ai du mal à désactiver l’optimisation de GCC pour l’un de mes projets C ++.

Le projet est construit avec makefiles comme ça …

make -j 10 && make install 

J’ai lu sur différents sites que la commande de désactivation de l’optimisation est quelque chose du genre de …

 gcc -O0  

Est-ce que quelqu’un pourrait m’aider s’il vous plaît à appliquer ceci aux makefiles au lieu du code individuel? J’ai cherché pendant des heures et je suis venu les mains vides.

Dans certains parameters de makefile standard, vous pouvez

 make -j10 -e CPPFLAGS=-O0 

Mais le makefile peut utiliser d’autres variables de substitution ou remplacer l’environnement. Vous devez nous montrer le Makefile afin de proposer des modifications

Le makefile le plus simple (utile) qui autorise le mode debug / release est le suivant:

 # # Define the source and object files for the executable SRC = $(wildcard *.cpp) OBJ = $(patsubst %.cpp,%.o, $(SRC)) # # set up extra flags for explicitly setting mode debug: CXXFLAGS += -g release: CXXFLAGS += -O3 # # Link all the objects into an executable. all: $(OBJ) $(CXX) -o example $(LDFLAGS) $(OBJ) $(LOADLIBES) $(LDLIBS) # # Though both modes just do a normal build. debug: all release: all clean: rm $(OBJ) 

Utilisation Génération par défaut (aucune optimisation spécifiée)

 > make g++ -c -o p1.o p1.cpp g++ -c -o p2.o p2.cpp g++ -o example p1.o p2.o 

Utilisation: Version de version (utilise -O3)

 > make clean release rm p1.o p2.o g++ -O3 -c -o p1.o p1.cpp g++ -O3 -c -o p2.o p2.cpp g++ -o example p1.o p2.o 

Usage: Debug build (utilise -g)

 > make clean debug rm p1.o p2.o g++ -g -c -o p1.o p1.cpp g++ -g -c -o p2.o p2.cpp g++ -o example p1.o p2.o 

Par exemple, une compilation optimisée peut être écrite comme suit:

 all: g++ -O3 main.cpp 

Une compilation avec des informations de débogage (sans optimisation) peut être écrite comme suit:

 all: g++ -g main.cpp