2011-12-19 25 views
0

我有這樣的代碼的結構:如何編寫Makefiles以獲取調試符號中的相對路徑?

project_dir/ 
    source1.c 
    subdir/ 
     source2.c 

Makefile電話subdir/Makefile,以使文件subdir/source2.c編譯這樣:

gcc -g -someoptions source2.c 
在GDB鏈接

和符號​​代替subdir/source2.c(結果GDB無法在源文件中找到符號)。我應該如何編寫一個Makefile或在gcc中使用哪些選項來使用項目主目錄的相對路徑(或最終的絕對路徑)來獲取符號?

我不能使用:

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

,因爲我將不得不改變引用頭文件中的所有文件subdir

+0

程序運行正常(沒有GDB)嗎? – Beta 2011-12-19 13:38:28

+0

我從gdbserver調用程序。 – 2011-12-23 08:51:43

回答

0

你的問題是平臺特定的(例如在Linux GDB應該只是工作(TM),所以我假設你是在Linux上不)。

一種選擇是建立這樣的:

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

另一種選擇是使用GDB dir命令添加到${TOP}/project_dir/subdir目錄,GDB將爲源搜索列表。

+0

我在Linux上工作,但我的程序在ARM處理器上運行,我使用gdb-arm。我用'dir'命令解決了這個問題。謝謝。 – 2011-12-23 08:52:49