如何修改Makefile使Eclipse支持调试导入的外部C项目
解决方案
你当前编译生成的可执行文件没有携带GDB识别的调试符号信息,因此Eclipse无法对其进行调试,只需要在编译参数中添加调试符号生成选项即可。
具体修改步骤
- 第一步:修改当前根目录Makefile中的
CFLAGS变量,添加-g3参数,修改后如下:
# 原CFLAGS配置 # CFLAGS = -lpthread -Wall -I$(INC_DIR) # 修改后的CFLAGS配置 CFLAGS = -lpthread -Wall -g3 -I$(INC_DIR)
参数说明:
-g是GCC用来生成GDB兼容调试符号的参数,-g3会额外包含宏定义等调试信息,更适合本地调试场景。
- 第二步(可选,需要调试子目录库代码时执行):修改
CommandParser目录下Makefile的CFLAGS配置,同样添加-g3参数,否则子库代码无法打断点调试。 - 第三步:执行
make clean清空历史编译产物,再重新执行make编译,此时生成的./bin/sim_tcp_ip可执行文件就携带了完整调试信息。 - 第四步:Eclipse调试时选择
./bin/sim_tcp_ip作为待调试文件即可正常启动调试流程。
注意事项
不要在编译参数中添加-O1/-O2/-O3这类优化参数,优化会改变代码执行逻辑、裁剪变量,导致调试时行号不匹配、变量无法查看,如果原有配置有优化参数,请替换为-O0(完全不优化)。
内容的提问来源于stack exchange,提问作者EmTor
相关产品推荐
相关产品推荐

