系统环境
- 操作系统:
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
环境变量(上面注释部分)