OSX 上可执行文件中的 Clang 链接 debug_info

Tim*_*mmm 5 macos clang dwarf

在 OSX 上,当您像这样链接来自多个目标文件的二进制文件时

clang++ -g myfile.cpp -o myfile.o
clang++ myfile.o -shared -o myfile.dylib
Run Code Online (Sandbox Code Playgroud)

它将生成一个.debug_info部分(等),myfile.o但其中myfile.dylib仅存储对的引用myfile.o,您必须dsymutil myfile.dylib手动运行。将目标文件中的dsymutil所有部分链接在一起并将它们存储在一个包中。.debug_infomyfile.dylib.dSYM

我的问题是:有没有办法让 Clang 在编译期间真正链接调试信息并将其直接存储在 中myfile.dylib

或者,如果这是不可能的,是否可以在生成包后将其嵌入.dSYM到包中?.dylib