我有一個使用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)
... ...
現在,我想我的部署應用在其他Linux機器。 我檢查的第一件事是官方文檔: http://doc.qt.io/qt-5/linux-deployment.html
我發現我沒有配置腳本。
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文件?
感謝
「我需要以特定方式安裝Qt才能獲得配置腳本嗎?」我假設你需要從源代碼構建和安裝Qt,而不是安裝預構建的二進制包,以便擁有configure腳本。這是* nix軟件的慣例。 – MrEricSir
您可以看看[部署包](https://stackoverflow.com/documentation/debian/9925/create-a-debian-package#t=201705290824497346076) –