如何在使用makefile时禁用GCC优化?

我刚刚开始学习Linux,在禁用GCC对我的一个C ++项目进行优化时遇到了一些麻烦。

这个项目是用像这样的makefiles来构build的。

make -j 10 && make install 

我已经阅读了各种网站,禁用优化的命令是沿线的东西…

 gcc -O0 <your code files> 

有人可以帮我申请这个makefile而不是单独的代码吗? 我一直在寻找几个小时,空手而归。

在一些标准的makefile设置你可以

 make -j10 -e CPPFLAGS=-O0 

但makefile可能会使用其他替代变量或重写环境。 您需要向我们展示Makefile以提出编辑

允许调试/释放模式的最简单(有用的)makefile是:

 # # 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) 

用法默认构建(没有指定的优化)

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

用法:发布版本(使用-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 

用法:调试版本(使用-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 

例如,优化的编译可以写成:

 all: g++ -O3 main.cpp 

带调试信息的编译(无优化)可以写成:

 all: g++ -g main.cpp