我有这样的代码结构:
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
中所有文件中对头文件的引用。
答案 0 :(得分:0)
您的问题是特定于平台的(例如,在Linux GDB应该正常工作(TM),因此我假设您在Linux上不)。
一种选择是像这样构建:
gcc -g ${PWD}/source2.c -o ...
另一种选择是使用GDB dir
命令将${TOP}/project_dir/subdir
添加到GDB将搜索源的目录列表中。