C++ 如何使用QtCreator将内部库添加到构建中
我正在用QT creator开发一个应用程序 我想构建一个不需要任何外部库的应用程序,但它应该在其构建中包含所有库。我希望这样可以解决以下问题: 如果我通过IDE(qtcreator)运行应用程序,程序运行不会出现任何问题,如果我通过终端(使用“/application”)运行应用程序,它会向我打印以下错误: /home/helias/software/Qt/5.6/gcc_64/libexec/QtWebEngineProcess:运行时出错 正在加载共享库:libQt5WebEngineCore.so.5:无法打开共享库 对象文件:没有这样的文件或目录 那么,如何将库集成到应用程序的发行版中,以避免库出现任何问题?部署Qt应用程序(与任何应用程序一样)需要在加载程序搜索路径中具有所需的库。Qt Creator可能在运行应用程序时设置LD_LIBRARY_PATH变量,或者设置生成的可执行文件的RPATH。在应用程序上运行ldd,查看找不到哪些库:C++ 如何使用QtCreator将内部库添加到构建中,c++,qt,shared-libraries,qt-creator,libraries,C++,Qt,Shared Libraries,Qt Creator,Libraries,我正在用QT creator开发一个应用程序 我想构建一个不需要任何外部库的应用程序,但它应该在其构建中包含所有库。我希望这样可以解决以下问题: 如果我通过IDE(qtcreator)运行应用程序,程序运行不会出现任何问题,如果我通过终端(使用“/application”)运行应用程序,它会向我打印以下错误: /home/helias/software/Qt/5.6/gcc_64/libexec/QtWebEngineProcess:运行时出错 正在加载共享库:libQt5WebEngineCo
$ 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)
等等
如果加载程序找不到库,它将告诉您未找到。在这种情况下,您可以通过安装它们或将库复制到可执行文件的RPATH目录中,使它们在适当的位置可用。最简单的方法是为您的发行版安装Qt库。正如您在my ldd输出中看到的那样,我的ldd是在/usr/lib中安装的。所需的软件包在每个Linux发行版上都会有所不同
部署Qt应用程序的权威来源似乎是。是否要将Qt框架所需的库绑定到应用程序中 如果是这样的话,那么首先阅读许可条款,就好像我理解您的需要一样,您正在使用静态库构建应用程序,这是免费或LGPL版本的Qt所不允许的,因为您需要购买商业版本 要使用静态库构建应用程序,请参阅voidrealms.com教程,了解如何使用静态链接库构建应用程序