gdb教程建议用'gcc -g'编译,用编译符号编译程序。
但是,我想调试用make编译的程序。如何指示make使用调试符号进行编译?
感谢。
答案 0 :(得分:7)
为了更改编译选项,您需要在运行'make'的目录中编辑文件'Makefile'。在该文件中查找以下内容之一:
定义编译器的变量,可能类似于:
CC = 'GCC'
调用编译器的实际行(更可能是手工制作的Makefile)。
变量名为CFLAGS或CXXFLAGS
在前两种情况下,只需在'gcc'之后添加'-ggdb',在第三种情况下,更容易添加'-ggdb',如:
CFLAGS='-ggdb'
答案 1 :(得分:3)
我必须处理的makefile(由其他人创建)经常不容易将选项更改为编译器。简单地在命令行上设置CFLAGS
很容易,但是很多其他重要的编译选项。但是,您通常可以通过覆盖make
命令行上的编译器宏来处理问题:
make CC="gcc -g" ...other arguments...
您需要确保使用调试标志编译您对调试感兴趣的所有内容。您可以使用make cleanup
或make clean
清除碎片,也可以采用更简单的措施(rm *.o *.a *.so
或其等效物)。或者,如果你有GNU Make,那么使用-B
或--always-make
强制它重建所有内容。
如果您有多目录构建,则需要在所有相关目录中执行此操作。