【问题标题】:How to add internal libraries into build with QtCreator如何使用 QtCreator 将内部库添加到构建中
【发布时间】:2016-05-06 13:00:17
【问题描述】:

我正在使用 QT creator 开发一个应用程序。

我想构建一个不需要任何外部库的应用程序,但它的构建中应该包含所有库我希望这可以解决以下问题:

如果我通过 IDE (qtcreator) 运行应用程序,程序运行没有任何问题,如果我通过终端运行它(使用 "./application"),它会向我打印以下错误:

/home/helias/software/Qt/5.6/gcc_64/libexec/QtWebEngineProcess: 出错时 加载共享库:libQt5WebEngineCore.so.5:无法打开共享 目标文件:没有这样的文件或目录

那么,如何将库集成到应用程序的发布中,以免遇到库问题?

【问题讨论】:

    标签: c++ qt shared-libraries qt-creator libraries


    【解决方案1】:

    部署 Qt 应用程序(与任何应用程序一样)要求您在加载程序搜索路径中有所需的库。 Qt Creator 可能会在运行应用程序时设置 LD_LIBRARY_PATH 变量或设置构建的可执行文件的 RPATH。在您的应用程序上运行 ldd 以查看找不到哪些库:

    $ ldd ./application
    

    这将打印所需的库及其位置:

    linux-vdso.so.1 (0x00007ffc63cc3000)
    libQt5Widgets.so.5 => /usr/lib/libQt5Widgets.so.5 (0x00007f8a89e04000)
    libQt5WebEngineCore.so.5 => /usr/lib/libQt5WebEngineCore.so.5 (0x00007f8a85467000)
    libQt5Quick.so.5 => /usr/lib/libQt5Quick.so.5 (0x00007f8a84e7f000)
    libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0x00007f8a846fc000)
    libQt5Qml.so.5 => /usr/lib/libQt5Qml.so.5 (0x00007f8a8410b000)
    libQt5Network.so.5 => /usr/lib/libQt5Network.so.5 (0x00007f8a83d9f000)
    libQt5WebChannel.so.5 => /usr/lib/libQt5WebChannel.so.5 (0x00007f8a83b82000)
    libQt5Positioning.so.5 => /usr/lib/libQt5Positioning.so.5 (0x00007f8a83942000)
    libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007f8a83278000)
    libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f8a83007000)
    libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f8a82dea000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f8a82a68000)
    

    等等

    如果加载器找不到库,它会告诉您NOT FOUND。在这种可能的情况下,您可以通过安装它们使它们在适当的位置可用,或者将库复制到可执行文件的 RPATH 中的目录中。最简单的方法是为您的发行版安装 Qt 库。正如您在我的 ldd 输出中看到的那样,我的安装在 /usr/lib 中。每个 Linux 发行版所需的软件包都不同。

    部署Qt应用的权威来源好像是here

    【讨论】:

      【解决方案2】:

      您想将 Qt 框架所需的库绑定到您的应用程序中吗?

      如果是这样,请先阅读许可条款,就好像我了解您的需求一样,您正在使用静态库构建应用程序,这是免费或 LGPL 版本的 Qt 所不允许的,因为您需要购买商业版版本。

      要使用静态库构建应用程序,您可以参考 voidrealms.com 使用静态链接库构建应用程序的教程。

      【讨论】:

        猜你喜欢
        • 2019-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多