捆绑 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
Xcode 查找错误的 OpenCV 库名称:2.4.dylib 而不是 2.4.5.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