为啥 Xcode 不为静态库生成 dSYM

Posted

技术标签:

【中文标题】为啥 Xcode 不为静态库生成 dSYM【英文标题】:Why does not Xcode generate dSYM for static library为什么 Xcode 不为静态库生成 dSYM 【发布时间】:2018-05-30 12:04:46 【问题描述】:

我尝试使用“DWARF with dSYM File”格式编译库并获取调试符号。这适用于动态库,但不适用于静态库。

XCode“快速帮助”说“不需要dSYM文件,不会为静态库或目标文件产品创建)。[dwarf-with-dsym]”

谁能解释一下原因?

谢谢

【问题讨论】:

你在这里找到什么了吗? @伊戈尔 @vishalv2050 不,我没有。 我做了并添加了相同的答案。谢谢。 【参考方案1】:

我偶然发现了这一点,希望能对此有所了解

由于静态库并不是真正的可执行文件,它仍然会包含其中的符号。所以 dSYM 没有意义,当这个库反过来被另一个应用程序使用时,就会有一个包含应用程序符号和静态框架符号的 dSYM。

另一方面,动态框架本身就是一个可执行文件,因为它已准备好加载到应用程序中并且已经在其上进行了链接。因此,您库中的所有符号都已转换为机器代码,但有一个 dSYM 将包含您的符号映射。

为像我这样的可怜人添加了这个,如果我需要进一步解释的话,请LMK。

【讨论】:

以上是关于为啥 Xcode 不为静态库生成 dSYM的主要内容,如果未能解决你的问题,请参考以下文章

未生成适用于 iOS 的 Xcode 6.1 静态库 .a

Xcode如何添加静态库?

xcode静态库调试

为啥找不到静态库头?

为啥生成 pdb 文件会导致静态链接库的大小大幅增加?

Xcode:将静态库目标复制到新项目