捆绑 dylibs,headerpad_max_install_names 不起作用

Posted

技术标签:

【中文标题】捆绑 dylibs,headerpad_max_install_names 不起作用【英文标题】:Bundling dylibs, headerpad_max_install_names not working 【发布时间】:2012-09-20 16:27:17 【问题描述】:

我还有另一个 OSX 应用程序问题。我想在我的最终应用程序中捆绑几个 dylib,应用程序和其他 dylib 都需要它们。

我使用 install_name_tool 更改了它的引用,但某些库无法正确更改,出现以下错误:

install_name_tool:更改安装名称或 rpath 无法重做:aLibrary.dylib(适用于架构 x86_64),因为不适合较大的更新加载命令(必须重新链接程序,您可能需要使用 -headerpad 或 - headerpad_max_install_names)

所以我在 xcode 项目的链接器标志上添加了 headerpad_max_install_names 选项标志(项目属性-构建设置-链接-其他链接器标志)。我还在构建日志中验证了是否包含选项标志,并且正确包含了选项标志。

但在最后一个 dylibs 中仍然有同样的错误。

有没有办法将所有需要的库捆绑到一个独特的框架中?还是我在构建过程中做错了什么?

希望我清楚主要问题。

谢谢!

【问题讨论】:

【参考方案1】:

我在使用 C++ 和 Code::Blocks 时遇到了同样的问题,我通过从 g++ 切换到 clang++ 来修复它

【讨论】:

以上是关于捆绑 dylibs,headerpad_max_install_names 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

错误 ITMS-90171:“无效的捆绑结构不允许二进制文件 APP.app/libswiftRemoteMirror.dylib

libz.dylib ios框架怎么导入

Xcode 查找错误的 OpenCV 库名称:2.4.dylib 而不是 2.4.5.dylib

我怎样才能每个 dylib 有一个单例?

dumpdecrypted.dylib: code signature in (dumpdecrypted.dylib) not valid for use in process using Libr

dumpdecrypted.dylib: code signature in (dumpdecrypted.dylib) not valid for use in process using Libr