如何在xcode中禁用C死代码剥离

如何在xcode中禁用C死代码剥离,第1张

概述我正在尝试将来自几个静态库(我自己的库)的所有未引用符号链接到我的C xcode应用程序.我已经尝试了所有与’strip’相关的属性(通过搜索’strip’的属性),但未引用的符号,特别是类,没有链接. 我也尝试过-r linker标志,但是链接器只会抱怨: ‘ld:-r和-dead_strip不能一起使用’ 我已经尝试将’-no_dead_strip’添加到链接器标志,但是链接器只是告诉我 ‘- 我正在尝试将来自几个静态库(我自己的库)的所有未引用符号链接到我的C xcode应用程序.我已经尝试了所有与’strip’相关的属性(通过搜索’strip’的属性),但未引用的符号,特别是类,没有链接.

我也尝试过-r linker标志,但是链接器只会抱怨:
‘ld:-r和-dead_strip不能一起使用’

我已经尝试将’-no_dead_strip’添加到链接器标志,但是链接器只是告诉我
‘-no_dead_strip’被忽略.

我对’Apple LLVM’和’LLVM GCC’都得到了相同的结果.

所以,我的问题是:我应该使用什么链接器标志或目标属性来关闭所有死代码剥离并强制链接未引用的类?

解决方法 标准链接机制 – 即使用-l选项链接.a文件将智能地过滤掉未使用的目标文件,因此这些符号在结果二进制文件中不存在的原因是它们实际上并未链接到.

如果要从一个存档中获取所有符号,可以使用以下标志:-force_load libraryarchive,使用如下:-Wl,-force_load,libfoobar.a其中libfoobar.a是要从中获取所有符号的存档.

为了从所有档案中获取所有符号,您应该使用链接器标志:-all_load,或者如果您从gcc / clang驱动它,则标志-Wl,-all_load.

但它会产生可怕的符号表!

总结

以上是内存溢出为你收集整理的如何在xcode中禁用C死代码剥离全部内容,希望文章能够帮你解决如何在xcode中禁用C死代码剥离所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1023825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存