2015-02-04 10 views
1

Мне нужно связать файл с install_name_tool. Файл в вопросе позвольте мне изменить один из путей dylib, но когда я изменяю второй (из 7), я получаю эту ошибку:install_name_tool не может использовать изменения ", потому что более крупные обновленные команды загрузки не подходят"

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) 

После прибегая к помощи вокруг, я обнаружил, что там просто не хватает мест для новые пути в файле и что я мог бы использовать инструмент ld, или libtool, чтобы исправить это. Однако я не могу понять, как это сделать. У меня нет исходного кода для этой библиотеки, поэтому я не могу ее перекомпилировать.

Есть any способ обновить все пути dylib для этого файла? Любая помощь будет очень высоко ценится!


Я на OSX 10.10 командного Я использую: install_name_tool -change old/dylib/path.dylib new/dylib/path.dylib file/to/update

ответ

4

Проблема заключается в бинарных, а не в библиотеках. Сделайте то, что предлагает предупреждение. Добавьте -headerpad_max_install_names в ld флаги, используемые для связывания вашего двоичного файла. Если вы используете Xcode, вы можете поместить его в настройку сборки других ссылок Linker Flags.