如何编写Makefile以获取调试符号中的相对路径?

时间:2011-12-19 10:03:23

标签: debugging gcc makefile gdb debug-symbols

我有这样的代码结构:

project_dir/
    source1.c
    subdir/
        source2.c

Makefile调用subdir/Makefile,以便以这种方式编译文件subdir/source2.c

gcc -g -someoptions source2.c

并且GDB中的符号链接到source2.c而不是subdir/source2.c(结果是GDB无法在源文件中找到符号)。我应该如何编写Makefile或在gcc中使用哪些选项来使用项目主目录的相对路径(或最终的绝对路径)来获取符号?

我无法使用:

cd .. && gcc -g -someoptions ../subdir/source2.c

因为我必须更改subdir中所有文件中对头文件的引用。

1 个答案:

答案 0 :(得分:0)

您的问题是特定于平台的(例如,在Linux GDB应该正常工作(TM),因此我假设您在Linux上)。

一种选择是像这样构建:

gcc -g ${PWD}/source2.c -o ...

另一种选择是使用GDB dir命令将${TOP}/project_dir/subdir添加到GDB将搜索源的目录列表中。