【问题标题】:QMake and application bundleQMake 和应用程序包
【发布时间】:2013-04-10 16:43:56
【问题描述】:

几年后我又开始使用 Qt (5.0.1)。

我在使用 QMAKE_BUNDLE_DATA 在我的 OSX 应用程序包中分发 dylib 和插件时遇到了一些麻烦。

我的应用程序 .pro 文件的相关部分如下所示:

macx {
        dylibs.path = $$DESTDIR_TARGET/Contents/Frameworks
        dylibs.files = $$DESTDIR/../lib/*
        QMAKE_BUNDLE_DATA += dylibs

        plugins.path = $$DESTDIR_TARGET/Contents/Plugins
        plugins.files = $$DESTDIR/../plugins/*
        QMAKE_BUNDLE_DATA += plugins
}

INSTALLS += target

我已验证 $$DESTDIR 指向正确的位置,并且该目录中存在文件。我对 Makefile 不是很好,但据我了解,qmake 生成的目标如下:

../../../build/apps/MyApp.app/Contents/Frameworks/*:

这些目标没有在 all 目标中引用。任何想法我做错了什么?

【问题讨论】:

  • 你研究过 macdeployqt 吗?它应该会自动生成带有必要 dylib 的应用程序包。我没有广泛使用 Qt 5.x,但是这个链接应该是类似的:stackoverflow.com/questions/2809930/…
  • 是的,但它所做的一切都是复制正确的 Qt 框架。它不处理我自己的库/框架。我想要的是 qmake;make;生成完整的应用程序包。
  • 如果您手动将 dylibs/frameworks 复制到应用程序包中,该应用程序是否可以在非开发机器上运行?
  • 是的……我只是想自动化这个过程。

标签: macos qt qmake qt5


【解决方案1】:

我放弃了 QMAKE_BUNDLE_DATA,据我所知它不适用于 app_bundle 目标。

相反,我使用 INSTALLSmake install 生成应用程序包,然后触发对 macdeployqt 的调用以完成任务。

这并不理想,但可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 2015-12-15
    • 1970-01-01
    • 2011-04-06
    • 2012-12-02
    • 2011-03-02
    相关资源
    最近更新 更多