我有一个使用Qt 5.8创建的应用程序。该应用程序是在Ubuntu 16.04上开发的。Linux上的Qt 5.8(Ubuntu 16.04)应用程序部署
运行ldd app_name后,我可以看到库中的应用程序使用:
linux-vdso.so.1 => (0x00007ffe16bef000)
libmysqlclient.so.20 => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 (0x00007f1f455b0000)
libQt5Widgets.so.5 => /home/r0ng/Qt/5.8/gcc_64/lib/libQt5Widgets.so.5 (0x00007f1f44d7f000)
libQt5Gui.so.5 => /home/Qt/5.8/gcc_64/lib/libQt5Gui.so.5 (0x00007f1f445e3000)
libQt5Core.so.5 => /home/Qt/5.8/gcc_64/lib/libQt5Core.so.5 (0x00007f1f43ec3000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1f43b41000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1f4392a000)
... ...
我发现我没有配置脚本。
find -type f -name "configure*"
./Docs/Qt-5.8/qtgamepad/images/configuregamepadbuttons-example.png
./Docs/Qt-5.8/qtdoc/configure-options.html
./Examples/Qt-5.8/gamepad/configureButtons/configureButtons.pro
./Examples/Qt-5.8/gamepad/configureButtons/doc/images/configuregamepadbuttons-example.png
./5.8/gcc_64/mkspecs/features/configure_base.prf
./5.8/gcc_64/mkspecs/features/configure.prf
./5.8/android_armv7/mkspecs/features/configure_base.prf
./5.8/android_armv7/mkspecs/features/configure.prf
是否需要以特定方式安装Qt才能获取配置脚本?我也尝试在Qt Maintenace工具中查找脚本。但没有。
另一个尝试是基于此线程 Deployment of QT apps on linux。看起来Qt项目文件(* .pro)允许开发人员将所有动态库复制到应用程序的当前工作目录。但我不知道如何设定价值ORIGIN。在这种情况下,-rplrpath会做什么?
任何人都知道如何让Qt从当前工作目录加载* .so文件?
感谢
2017-05-28
r0ng
+0
“我需要以特定方式安装Qt才能获得配置脚本吗?”我假设你需要从源代码构建和安装Qt,而不是安装预构建的二进制包,以便拥有configure脚本。这是* nix软件的惯例。 –
+0
您可以看看[部署包](https://stackoverflow.com/documentation/debian/9925/create-a-debian-package#t=201705290824497346076) –