2011-01-31 67 views
4

我有一個C++項目(開源),默認情況下不需要去除調試符號。有了很多測試可執行文件,在OS X上生成了很多dSYM文件。我嘗試過使用-g3作爲g ++標誌,但是無濟於事。想法?防止在OS X上編譯生成dSYM(使用make)

謝謝! Juan

回答

1

你正在編譯通過XCode? GCC不生成.dSYM文件,XCode運行dsyumutil生成它們。在我的(過時的)XCode 3.2.3中,在項目設置,構建選項 - >調試信息格式下,您可以選擇「帶有dSYM文件的DWARF」或「DWARF」。後者不應導致dSYM產生。

但是,請注意,使用Apple的工具鏈,DWARF駐留在.o文件中,並且不會鏈接到最終的二進制文件中。 (GDB知道如何找到它,但它需要放在磁盤上的.o文件)。如果你打算把二進制文件發送給其他人,你確實需要生成一個dSYM文件,以便與二進制文件一起發送。

3

正如Ted Mielczarek指出的那樣,gcc本身並不生成dSYM文件,只是將生成它們所需的信息存儲在目標文件中。如果您使用make來構建您的項目,那麼在編譯/鏈接可執行文件之後運行dsymutil的makefile中最有可能會單獨執行一個步驟,看看您是否可以找到並刪除它。

0

如果您使用「-g」標誌進行編譯,請將其刪除。