我刚刚开始学习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