Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用QtCreator将内部库添加到构建中_C++_Qt_Shared Libraries_Qt Creator_Libraries - Fatal编程技术网

C++ 如何使用QtCreator将内部库添加到构建中

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

我正在用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,查看找不到哪些库:

$ 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教程,了解如何使用静态链接库构建应用程序