今天有个项目要做仪表盘的设计,需要用到QT5的QML来画界面,所以移植了一下QT5.
主要参考博客是:
http://blog.csdn.net/askeyes/article/details/8641161
http://blog.csdn.net/newthinker_wei/article/details/39560109
1.QT5.5.0的下载地址http://download.qt.io/official_releases/qt/5.5/5.5.0/single/
选择qt-everywhere-opensource-src-5.5.0.tar.gz下载解压
2。修改 qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
3../configure -release -opensource -xplatform linux-arm-gnueabi-g++ -prefix /opt/Qt-5.5.0/armv7-a -no-c++11 -qreal float
4.make -j2
5.make install -j2
6.在/opt/Qt-5.5.0/armv7-a/目录下面生成lib plugin bin .等文件夹
其中lib是QT5编译用的库,plugin是QT5所用的插件,lib 和plugin目录都要复制到板子里面才可以运行QT程序。
其中bin里面的qmake命令就是我们用来编译QT5工程的命令
7.将lib和plugin目录复制到目标板中,并设置如下面环境变量
export QT_ROOT=/data
export LD_LIBRARY_PATH=/data/lib:$LD_LIBARAY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
export LD_PRELOAD=/usr/lib/preloadable_libiconv.so:$TSLIB_ROOT/lib/libts.so
export QT_QPA_GENERIC_PLUGINS=tslib
8.在编译好的例子中下载一个例如名字是rashterwindow的可执行QT程序,用命令执行:
./rashterwindow -qpa
错误总结:
在执行QT程序是出现如下错误
QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
解决办法:
参考链接:http://www.qtcn.org/bbs/simple/?t55852.html
问题 3:./system/rootlib/helloworld -qws ,程序运行起来,仍报错
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
解决 :下载 http://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz
./configure -prefix=$PWD/_install -host=arm-linux-gnueabihf
make
make install
把_install/lib 下的preloadable_libiconv.so 拷到系统的/system/lib 下,
export LD_PRELOAD=/system/lib/preloadable_libiconv.so