install_name_tool ничего не делает
Я готовлю свое приложение к развертыванию на OSX. Единственная проблема - перемещение общих библиотек.
Я помещаю их все в папку Frameworks в самой папке.app.
То, что я пытаюсь использовать для каждой библиотеки
install_name_tool \
-id @executable_path/../Frameworks/QtSql.framework/Versions/4/QtSql \
MyProgram.app/Contents/MacOS/MyProgram
install_name_tool \
-change QtSql @executable_path/../Frameworks/QtSql.framework/Versions/4/QtSql \
MyProgram.app/Contents/MacOS/MyProgram
Когда я снова запускаю otool -L в моем исполняемом файле, ничего не меняется. Это все еще вывод:
kqoauth.framework/Versions/0/kqoauth (compatibility version 0.95.0, current version 0.95.0)
QtDeclarative.framework/Versions/4/QtDeclarative (compatibility version 4.7.0, current version 4.7.3)
QtScript.framework/Versions/4/QtScript (compatibility version 4.7.0, current version 4.7.3)
QtCore.framework/Versions/4/QtCore (compatibility version 4.7.0, current version 4.7.3)
QtSvg.framework/Versions/4/QtSvg (compatibility version 4.7.0, current version 4.7.3)
QtGui.framework/Versions/4/QtGui (compatibility version 4.7.0, current version 4.7.3)
QtSql.framework/Versions/4/QtSql (compatibility version 4.7.0, current version 4.7.3)
QtXmlPatterns.framework/Versions/4/QtXmlPatterns (compatibility version 4.7.0, current version 4.7.3)
QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.7.0, current version 4.7.3)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 832.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.10)
Что я делаю неправильно?
1 ответ
Решение
Ты пробовал
install_name_tool \
-change QtSql.framework/Versions/4/QtSql \
@executable_path/../Frameworks/QtSql.framework/Versions/4/QtSql \
MyProgram.app/Contents/MacOS/MyProgram
? Скорее всего, вам нужно использовать полное имя текущей установки, как показано на otool -L
,