今天在項目上將之前rootfs上關於qt的目錄由原來的usr/lib/qt5/變為/usr/local/qt5.2.1和/usr/local/qt5.6.2,由於webApp和HMI的進程用的不同的Qt版本(HMI使用的是Qt5.6.2),所以項目上將兩套Qt的路徑分開了。在啟動HMI進程發現qtapp(HMI進行)成功啟動,但是出現如下錯誤:
qrc:/root.qml:11:1: module "QtQuick" is not installed
后來懷疑是環境變量配置上出了問題,但是看下面的好像也沒有問題啊
QTDIR=/usr/local/qt5.6.2 export PATH=/usr/local/sbin:$PATH export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/opt/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$QTDIR:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/app/NativeApps/sys/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/lib/gstreamer-1.0/:$LD_LIBRARY_PATH export QT_QPA_PLATFORM=eglfs export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins export QT_QPA_FONTDIR=/usr/lib/fonts export QT_QPA_GENERIC_PLUGINS=evdevtouch:/dev/input/event0
HMI該導入的環境變量到導入了,plugins也導入了,於是用strace跟蹤了下,打開的也都是/usr/local/qt5.6.2 路勁下面的東西,那問題出在哪里,最后查了下,加上:
export QML2_IMPORT_PATH=$QTDIR/qml
竟然ok了,原因請教了下BSP的工程師(因為rootfs使他們配置的),他們說是因為QtQuick之前有默認的usr/lib/qt5/qml/下面去找QtQuick相關的路徑,現在目錄變為/usr/local/qt5.6.2,必須顯示的設置下才可以,不然找不到QtQuick,所以出現
qrc:/root.qml:11:1: module "QtQuick" is not installed
這個解釋正確不正確還有待確定,暫時認為是正確的吧。