2011-10-22 60 views
1

將多個文件編譯爲可執行文件時遇到問題。 我對GCC命令是:爲什麼GDB不創建符號文件?

gcc -g -o PartitionedHashJoin -O0 -msse4.2 -lm -DNUM_BUCKETS=2 Relations.h Relations.c PartitionedHashJoin.h PartitionedHashJoin.c 

GCC編譯正確,但顯然不會創建一個DSYM(Mac OS)中的符號文件。 我試圖剝離SSE或-lm編譯器選項,但沒有效果。

有沒有人有一個想法,我可以如何讓我的調試符號?

謝謝!

更新/編輯: 我會滿足於嵌入的符號,它並沒有成爲一個DSYM文件,但嵌入的似乎丟失了。 dsymutil無法在使用上述命令創建的可執行文件中找到它們。

+0

確保在系統中安裝了'dsyumutil'並閱讀[this comment](http://stackoverflow.com/questions/4850788/prevent-compiling-from-generating-dsym-on-os-x-using -make/5391173#5391173)。 –

+0

該實用程序已安裝 - 感謝提示。在調用該實用程序時,它會抱怨缺少可執行文件內的調試符號 - 顯然它們不是在那裏創建的。 – Patrick

+0

也試試-ggdb,但不知道它會有所幫助。 –

回答

0

在其他Unix和Linux上,gcc在對象文件內部發出調試信息。我不知道MacOSX上發生了什麼。

+0

dma_k的鏈接指出,這些符號也應駐留在Mac OS X的目標文件中。但是,我(或'dsymutil')似乎無法找到它們 - 我需要指定一個位置以在調用gcc時保存它們嗎? – Patrick

相關問題