防止编译在OS X上生成dSYM(使用make)

时间:2011-01-31 12:22:20

标签: c++ macos makefile

我有一个c ++项目(开源),默认情况下不需要去除调试符号。有很多测试可执行文件,在OS X上生成了很多dSYM文件。我试过-g3作为g ++标志无济于事。想法?

谢谢! 涓

3 个答案:

答案 0 :(得分:3)

正如Ted Mielczarek指出的那样,gcc本身并不生成dSYM文件,它只是存储在目标文件中生成它们所需的信息。如果你使用make来构建你的项目,很可能在编译/链接可执行文件后,makefile中有一个单独的步骤运行dsymutil,看看你是否可以找到并删除它。

答案 1 :(得分:1)

您是否通过XCode进行编译? GCC不生成.dSYM文件,XCode运行dsyumutil来生成它们。在我的(过时的)XCode 3.2.3中,在项目设置,构建选项 - >调试信息格式,您可以选择“DWARF with dSYM File”或“DWARF”。后者不应导致生成dSYM。

但是,请注意,使用Apple的工具链,DWARF驻留在.o文件中,并且不会链接到最终的二进制文件中。 (GDB知道如何找到它,但它需要在磁盘上放置.o文件。)如果您打算将二进制文件发送给其他人,您确实需要生成一个dSYM来将它们与二进制文件一起发送。

答案 2 :(得分:1)

如果您使用“-g”标志进行编译,请将其删除。