在Mac上部署Qt应用程序

时间:2010-12-16 12:23:01

标签: qt deployment qt4 imagemagick

我创建了一个应用程序,当我构建发布模式时,它似乎工作正常。 以下是输出:otool -L RightDoneIt.app/Contents/MacOs/rightdoneit

/opt/local/lib/libMagick++.4.dylib (compatibility version 5.0.0, current version 5.0.0)
QtGui.framework/Versions/4/QtGui (compatibility version 4.7.0, current version 4.7.0)
QtCore.framework/Versions/4/QtCore (compatibility version 4.7.0, current version 4.7.0)
/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 625.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)

从第一行可以看出,我正在使用ImageMagick库

之后,我使用macdeployqt工具进行部署:deployqt RightDoneIt.app -dmg 这会产生所有预期的文件,当我输入otool时,我会检查

@executable_path/../Frameworks/libMagick++.4.dylib (compatibility version 5.0.0, current version 5.0.0)
@executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.7.0, current version 4.7.0)
@executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.7.0, current version 4.7.0)
/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 625.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)

如果我尝试运行使用deploytool创建的应用程序,每次尝试运行ImageMagick函数时都会出现运行时错误。

有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我遇到了类似的情况,并且无法在网络上找到自动工具。只需使用otool检查libMagick ++。4.dylib,然后为libMagick ++运行install_name_tool.4.dylib

答案 1 :(得分:1)

供参考:

此处xxxx =申请名称

  1. 在发布模式浅构建中构建项目。

  2. cd /Users/QtSDK/QtSources/4.7.4/bin/Users/xxxx/Desktop/abc/qt-everywhere-opensource-src-4.8.4/bin

  3. 在终端:./macdeployqt "path to .app file"
  4. 这将创建包含所有依赖库的app文件 在终端:

    • CD "Release folder (.app folder)"
    • install_name_tool -id @executable_path/../Frameworks/libtag.1.dylib xxxx.app/Contents/Frameworks/libtag.1.dylib

    • install_name_tool -change /Users/xxxx/wav/taglib-1.8/Build/taglib/libtag.1.dylib @executable_path/../Frameworks/libtag.1.dylib xxxx.app/Contents/MacOs/xxxx

    • install_name_tool -change /Users/xxxx/wav/taglib-1.8/Build/taglib/libtag.1.dylib @executable_path/../Frameworks/libtag.1.dylib xxxx.app/Contents/Frameworks/libtag.1.dylib

  5. 通过terminal命令检查其他依赖库,如taglib CD "Release folder  在终端:tool -L appliaxtion文件中,如果有任何错误,则CD xxxx.app/Contents/MacOS然后键入tool -L xxxx并查看所有相关库 并为所有依赖库执行步骤4.

  6. 将所有相关库复制到app/contents/Frameworks
  7. ffmpeglastfm等(仅限所需的文件夹或文件)复制到app/contents/MacOs 制作DMG: - (details are here)或使用DMG画布。