install_name_tool什么也不做 [英] install_name_tool does nothing

查看:364
本文介绍了install_name_tool什么也不做的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在准备我的应用程序部署在OSX上。
唯一的问题是重新定位共享库。



我把它们全部放在.app文件夹本身的Frameworks文件夹中。



我为每个图书馆尝试的是:

  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 /版本/ 0 / kqoauth(兼容版本0.95.0,当前版本0.95.0)
QtDeclarative.framework /版本/ 4 / QtDeclarative(兼容版本4.7.0,当前版本4.7.3)
QtScript.framework /版本/ 4 / QtScript(兼容性ve rsion 4.7.0,当前版本4.7.3)
QtCore.framework /版本/ 4 / QtCore(兼容版本4.7.0,当前版本4.7.3)
QtSvg.framework /版本/ 4 / QtSvg (兼容版本4.7.0,当前版本4.7.3)
QtGui.framework /版本/ 4 / QtGui(兼容版本4.7.0,当前版本4.7.3)
QtSql.framework /版本/ 4 / QtSql(兼容版本4.7.0,当前版本4.7.3)
QtXmlPatterns.framework /版本/ 4 / QtXmlPatterns(兼容版本4.7.0,当前版本4.7.3)
QtNetwork.framework /版本/ 4 / QtNetwork(兼容版本4.7.0,当前版本4.7.3)
/usr/lib/libstdc++.6.dylib(兼容版本7.0.0,当前版本7.9.0)
/ usr /lib/libgcc_s.1.dylib(兼容版本1.0.0,当前版本832.0.0)
/usr/lib/libSystem.B.dylib(兼容版本1.0.0,当前版本125.2.10)

我做错了什么?

解决方案

您尝试过

  install_name_tool \ 
-change QtSql.framework / Versions / 4 / QtSql \
@executable_path /../ Frameworks / QtSql.framework /版本/ 4 / QtSql \
MyProgram.app/Contents/MacOS/MyProgram

?您可能需要使用完整的当前安装名称,如 otool -L 所示。


I'm preparing my application for deployment on OSX. The only problem is relocating the shared libraries.

I put them all inside a Frameworks-folder in the .app-folder itself.

What I try for every library is something like:

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

When I run otool -L on my executable again nothing changed.This is still the output:

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)

What am I doing wrong?

解决方案

Did you try

install_name_tool \
    -change QtSql.framework/Versions/4/QtSql \
    @executable_path/../Frameworks/QtSql.framework/Versions/4/QtSql \
    MyProgram.app/Contents/MacOS/MyProgram

? You likely need to use the full current install name as shown on otool -L.

这篇关于install_name_tool什么也不做的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆