install_name_tool无法使用更改"因为更大的更新加载命令不适合"

Aut*_*ico 7 dylib ld libtool install-name-tool

我需要重新链接一个文件install_name_tool.有问题的文件允许我更改其中一个dylib路径,但是当我更改第二个(7个)时,我收到此错误:

install_name_tool: changing install names or rpaths can't be redone for: some/library (for architecture i386) because larger updated load commands do not fit (the program must be relinked, and you may need to use -headerpad or -headerpad_max_install_names)
Run Code Online (Sandbox Code Playgroud)

在谷歌搜索后,我发现文件中的新路径没有足够的空间,我可能能够使用该ld工具,或者libtool解决这个问题.但是,我无法弄清楚如何.我没有这个库的源代码,所以我无法重新编译它.

没有办法让我更新这个文件的所有dylib路径?任何帮助将非常感谢!


我在osx 10.10我正在使用的命令: install_name_tool -change old/dylib/path.dylib new/dylib/path.dylib file/to/update

Jas*_*son 9

问题出在二进制文件中,而不是库中.做警告暗示的事情.添加-headerpad_max_install_names到用于链接二进制文件的ld标志.如果您使用的是Xcode,则可以将其放入目标的Other Linker Flags构建设置中.