系統環境
- 操作系統:
Ubuntu 16.04 LTS
- Qt版本:
5.11.2
運行庫
- 保證 系統
LD_LIBRARY_PATH
所在的路徑中, 包含了Qt5的運行庫, 其中以下運行庫是Qml程序運行所必須的最小依賴庫:
libQt5Qml.so
libQt5Gui.so
libQt5Core.so
libQt5Network.so
libicui18n.so
libicuuc.so
libicudata.so
- 如果運行庫是安裝在自定義的路徑(比如
/usr/local/qt/lib
) 時, 執行程序前需要將該lib
路徑添加到LD_LIBRARY_PATH
環境變量中
插件
- 運行Qt程序, 有個
plugins
目錄相當重要,plugins
目錄下面的platform*
系列目錄下有很多平臺相關的運行庫, 默認情況下, 會使用可執行文件所在目錄的platforms*目錄
進行搜索平臺文件 - 如果需要將平臺文件搜索路徑設定爲自定義路徑(比如
/usr/local/qt/plugins
), 導入環境變量QT_QPA_PLATFORM_PLUGIN_PATH
即可,
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/local/qt/plugins
- 缺少該環境變量並且可執行文件所在目錄沒有對應平臺文件目錄, 執行將會報
xcb
錯誤
Qml
- Qml程序運行除了傳統Qt程序的運行依賴以外, 還需要關注一下Qt安裝路徑下面
qml
目錄, 這個目錄是.qml
文件中import
所需要的導入QtQuick組件的依賴路徑, 需要手動設定QML2_IMPORT_PATH
環境變量, 比如:
export QML2_IMPORT_PATH=/usr/local/qt/qml
- 缺少該環境變量, 執行將會報
import
錯誤
運行示例(假定qt自定義安裝路徑爲/opt/qt
)
# export DISPLAY=:0
export LD_LIBRARY_PATH=/opt/qt/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=/opt/qt/plugins
export QML2_IMPORT_PATH=/opt/qt/qml
./my-qml-app
注意, 如果打開的終端不是本地桌面環境(比如ssh登錄), 又要在本地桌面環境下打開應用時, 需要設置 DISPLAY
環境變量(上面註釋部分)