【问题标题】:How to compile staticly a Qt 5 application?如何静态编译 Qt5 应用程序?
【发布时间】:2017-05-03 08:45:44
【问题描述】:

我想静态编译我的 Qt 5 应用程序。我使用了这个链接: Qt static linking and deployment

问题是我不知道“配置”文件在哪里或如何生成它?

ps:在 .pro 文件中添加“CONFIG = static”的旧选项不适用于 Qt5

【问题讨论】:

  • 请记住,您必须遵守 LGPL(或者如果您有商业许可证,请继续)

标签: c++ qt qt5 qmake configure


【解决方案1】:

你必须先compile the whole Qt library statically。然后,在您的项目中使用该配置。然后,您的应用程序将被静态编译。

Qt(使用 qmake 时)从其 qmakespec 获取编译配置,该配置是在 Qt 库编译期间定义的。这包括默认使用的所有参数。

请记住,这有一个学习曲线。你必须尝试并失败几次。你需要一些时间才能做到这一点。我提供的那个链接应该会让这项工作变得更容易。

【讨论】:

    【解决方案2】:

    问题是我不知道“配置”文件在哪里或如何生成它?

    QMake使用几种类型的文件:

    • .pro
    • .pri
    • .prf

    最常见的是用于项目的.pro。您可以在项目目录的根目录中找到/创建它。

    创建一个 QtCreator 项目会自动生成一个。请注意,还有 qbs 替代方案。

    在 .pro 文件中添加“CONFIG = static”的旧选项不适用于 Qt5

    CONFIG *= static 仍然有效,您确定其他地方还有其他问题吗?

    CONFIG = static 将覆盖任何以前的值,使用 * 将附加新值而不删除以前的配置。我建议你使用'message($$CONFIG)'来确保内容正确。

    【讨论】:

    • static 添加到配置不会将Qt 库静态链接到您的程序。充其量可能只是编译器的运行时库。在 msvc 编译器的情况下甚至可能会导致冲突。
    • @TheQuantumPhysicist:当然,这只会告诉您的代码被编译为静态库,而不是链接到它。它也适用于 MSVC(测试到 2015 年)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多