Qt应用在Linux下的部署

Qt应用在Linux下的部署,qt,ubuntu,deployment,Qt,Ubuntu,Deployment,我正试图在Ubuntu下部署我的qt应用程序。 我有Qt5.1.1。库是动态链接的 大体上 QStringList paths = QCoreApplication::libraryPaths(); paths.append("libs"); paths.append("platform"); paths.append("audio"); paths.append("designer"); paths.append("sqldrivers"); QCoreApplication::setLibr

我正试图在Ubuntu下部署我的qt应用程序。 我有Qt5.1.1。库是动态链接的

大体上

QStringList paths = QCoreApplication::libraryPaths();
paths.append("libs");
paths.append("platform");
paths.append("audio");
paths.append("designer");
paths.append("sqldrivers");
QCoreApplication::setLibraryPaths(paths);
文件夹结构ls-Rl:

total 3184
drwxr-xr-x 2 viktor viktor    4096 Oct 25 10:09 audio
drwxr-xr-x 2 viktor viktor    4096 Oct 25 10:09 designer
drwxr-xr-x 2 viktor viktor    4096 Dec  5 12:18 libs
drwxr-xr-x 2 viktor viktor    4096 Oct 25 10:09 platforms
drwxr-xr-x 2 viktor viktor    4096 Dec  5 12:18 sqldrivers
-rwxr-xr-x 1 viktor viktor 3237902 Dec  5 13:06 App

./audio:
total 84
-rwxr-xr-x 1 viktor viktor 84564 Aug 27 14:24 libqtmedia_pulse.so

./designer:
total 32
-rwxr-xr-x 1 viktor viktor 14820 Aug 27 14:24 libqdeclarativeview.so
-rwxr-xr-x 1 viktor viktor 15248 Aug 27 14:24 libqwebview.so

./libs:
total 86524
-rwxr-xr-x 1 viktor viktor 22315900 Apr 29  2013 libicudata.so.51
-rwxr-xr-x 1 viktor viktor  2698565 Apr 29  2013 libicui18n.so.51
-rwxr-xr-x 1 viktor viktor  1742896 Apr 29  2013 libicuuc.so.51
-rwxr-xr-x 1 viktor viktor  4721396 Oct 25 10:10 libQt5Core.so.5
-rwxr-xr-x 1 viktor viktor  4629056 Aug 27 14:23 libQt5Gui.so.5
-rwxr-xr-x 1 viktor viktor   874308 Aug 27 14:23 libQt5Multimedia.so.5
-rwxr-xr-x 1 viktor viktor  1406652 Aug 27 14:23 libQt5Network.so.5
-rwxr-xr-x 1 viktor viktor   397104 Aug 27 14:23 libQt5OpenGL.so.5
-rwxr-xr-x 1 viktor viktor   334468 Aug 27 14:23 libQt5PrintSupport.so.5
-rwxr-xr-x 1 viktor viktor  2705336 Aug 27 14:23 libQt5Qml.so.5
-rwxr-xr-x 1 viktor viktor  3285156 Aug 27 14:23 libQt5Quick.so.5
-rwxr-xr-x 1 viktor viktor   224744 Aug 27 14:21 libQt5Sensors.so.5
-rwxr-xr-x 1 viktor viktor   256756 Aug 27 14:23 libQt5Sql.so.5
-rwxr-xr-x 1 viktor viktor  4627352 Aug 27 14:23 libQt5V8.so.5.1.1
-rwxr-xr-x 1 viktor viktor 31642416 Aug 27 14:23 libQt5WebKit.so.5
-rwxr-xr-x 1 viktor viktor   241052 Aug 27 14:23 libQt5WebKitWidgets.so.5
-rwxr-xr-x 1 viktor viktor  6465512 Aug 27 14:23 libQt5Widgets.so.5

./platforms:
total 1500
-rwxr-xr-x 1 viktor viktor  167272 Aug 27 14:24 libqlinuxfb.so
-rwxr-xr-x 1 viktor viktor   30600 Aug 27 14:24 libqminimal.so
-rwxr-xr-x 1 viktor viktor  134012 Aug 27 14:24 libqoffscreen.so
-rwxr-xr-x 1 viktor viktor 1196984 Aug 27 14:24 libqxcb.so

./sqldrivers:
total 732
-rwxr-xr-x 1 viktor viktor 747196 Aug 27 14:24 libqsqlite.so
但当我尝试运行应用程序时,我得到:

加载共享库时出错:libQt5WebKitWidgets.so.5:无法打开共享对象文件:没有这样的文件或目录


我不确定,但可能您不仅应该附加目录名,还应该附加完整路径。获取应用程序目录,并将子目录名称附加到其中

QString appFilePath = QCoreApplication::applicationFilePath();

QStringList paths = QCoreApplication::libraryPaths();
paths.append(QString("%1/%2").arg(appFilePath).arg("libs"));
paths.append(QString("%1/%2").arg(appFilePath).arg("platform"));
...

要使用QCoreApplication函数applicationFilePath,我需要创建QApplication的实例,否则它将返回一个空字符串。但若我试图创建QApplication对象,它会抛出我发布的错误。我建议您阅读一些关于Debian中包的内容。在这个包中,您应该定义包依赖项,这样Debian将与您的包一起安装其他所需的库。考虑使用不同的构建管理器,请参阅本页哦,我知道有关包的信息。不过,qt应用程序需要一些文件才能与libQt5*.so一起显示。谢谢你的链接