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)

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

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


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

1 ответ

Решение

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

Другие вопросы по тегам