大家好, 刚开始做Qt,加入这个社区,没有额外的Qter 豆,请见谅。
我的目的是移植Qt5.5.1版本到海思开发板。用Ubuntu的交叉编译链编译了Qt5.5.1版本源码,并修改了linuxfb与海思frame buffer初始化部分代码。我用的configure配置如下:
./configure -release -opensource -c++11 -shared -no-largefile -accessibility -qml-debug -platform linux-g++ -qt-zlib -mtdev -no-journald -qt-libpng -qt-libjpeg -qt-freetype -no-openssl -no-libproxy -no-tslib -no-glib -no-pulseaudio -no-alsa -no-gtkstyle -skip qtwebchannel -skip qtcanvas3d -skip qtwebkit -silent -no-cups -evdev -nomake examples -nomake tests -no-pch -no-dbus -xplatform arm-hisiv500-linux-g++ -prefix /home/HI3519V101/20-hi3519v101_xianwei/4keptz_project/4keptz_project.si4project/Qt -rpath
安装目录为/home/HI3519V101/20-hi3519v101_xianwei/4keptz_project/4keptz_project.si4project/Qt, 这是Ubuntu上的路径。然后写了个简单的demo,并且交叉编译成功。
然后开发板用NFS挂载访问可执行文件和链接库。但是执行时遇到这个错误:Application failed to start because it could not find or load the Qt platform plugin "linuxfb"。 我的环境变量都设置好了:
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
export QT_DEBUG_PLUGINS=1
export QTDIR=my NFS path/Qt5.5.1
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/platforms
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$QTDIR/plugins/platforms/
DEBUG信息为:
QFactoryLoader::QFactoryLoader() checking directory path "/opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms/libqlinuxfb.so"
Found metadata in lib /opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms/libqlinuxfb.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"linuxfb"
]
},
"className": "QLinuxFbIntegrationPlugin",
"debug": false,
"version": 328961
}
Got keys from plugin meta data ("linuxfb")
QFactoryLoader::QFactoryLoader() looking at "/opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms/libqminimal.so"
Found metadata in lib /opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms/libqminimal.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"minimal"
]
},
"className": "QMinimalIntegrationPlugin",
"debug": false,
"version": 328961
}
Got keys from plugin meta data ("minimal")
QFactoryLoader::QFactoryLoader() looking at "/opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms/libqoffscreen.so"
Found metadata in lib /opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms/libqoffscreen.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"offscreen"
]
},
"className": "QOffscreenIntegrationPlugin",
"debug": false,
"version": 328961
}
Got keys from plugin meta data ("offscreen")
loaded library "/opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms/libqlinuxfb.so"
QLibraryPrivate::loadPlugin failed on "/opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms/libqlinuxfb.so" : "Cannot load library /opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms/libqlinuxfb.so: (File not found)"
QFactoryLoader::QFactoryLoader() checking directory path "/opt/ipnc/4keptz_project/4keptz_project.si4project/mg-samples-3.0.12/src/qt/platforms" ...
QFactoryLoader::QFactoryLoader() checking directory path "/opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms/platforms" ...
This application failed to start because it could not find or load the Qt platform plugin "linuxfb".
提示Cannot load library /opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms/libqlinuxfb.so: (**File not found**) 这是我NFS挂载的路径,但是这个路径下的确是有libqlinuxfb.so的。
ls /opt/ipnc/4keptz_project/4keptz_project.si4project/Qt/plugins/platforms
libqlinuxfb.so libqminimal.so libqoffscreen.so
这是为什么呢? |