问题场景:
移植QT发现 libQt5Widgets.so.5 找不到,但是去/usr/lib又能找到,于是怀疑是export的环境问题。
问题描述
error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory
原因分析:
qt库环境变量设置错误
解决方案:
export QT_ROOT=/usr/lib/arm-qt
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1
export QT_QPA_FONTDIR=/usr/share/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export LD_LIBRARY_PATH=$QT_ROOT/lib:$QT_ROOT/plugins/platforms
export QML2_IMPORT_PATH=$QT_ROOT/qml
export QT_QPA_FB_TSLIB=1
把以上的部分加入环境变量/etc/profile中并保存。
vim ~/.bashrc
末尾写入
alias qmake_qt='自己qt源码的路径/qt-everywhere-src-5.12.9/arm-qt/bin/qmake'
source ~/.bashrc
生效
每次编译qt前都输入 qmake_qt 即可生成Makefile
最后编译make -j2即可
注:如果采用cmd编译qt,注意交叉编译环境qt-everywhere-src-5.12.9/arm-qt/bin/qmake(推荐alias生成方便的全局cmd)生成Makefile,然后再make,最后file查看是否是arm平台文件。