网上下的源码,编译之后居然不能gdb list源码,不爽,查make里面有-g啊,为啥不能list代码啊。
居然,居然。。。。
makefile 如下:
gcc *.c -i *.o
gcc *.o -g -o exe
没有半点怀疑,makefile中有-g,为何不能list呢??
后修改如下:
gcc *.c -g -i *.o
gcc *.o -o exe
可以list源码了。
后来想想也是啊,由.c 生成.o,有-g才能将符号表生成到.o文件中。再编译成exe可执行文件才能list。
如果.o里本来就没有符号表,那exe表就不能list了。
编码多年了,好多细节没有理解,黄果树瀑布汗。。。
如下是网友说的:
我曾经遇到过这种问题。。。我是用.o文件gcc -g 生成一个可执行文件。但是可执行文件是不能够使用gdb的。。
只有使用.c通过gcc生成才能够进行调试的。。。。
gcc -g *.c -o * 这个是不能生成可gdb的文件的。。。
版权声明:本文为yangzhenwen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。