要在ARM a5的开发板上使用QT,需要QT的arm平台的二进制文件,此时需要对QT的源码进行交叉编译。
步骤
1.到QT官网下载源码包,我这里选择的是qt5.9.9版本。
2.解压缩
tar -xf qt-everywhere-opensource-src-5.9.9
3.修改qmake配置。
在源码的这个路径下,修改配置文件
首先找到自己的交叉编译器路径(注意添加交叉编译器的环境变量
)
修改配置文件,设置编译器、链接器、汇编器为交叉编译器:
3.生成qmake,生成Makefile文件:
-xplatform linux-arm-gnueabi-g++
指定平台为arm,会调用刚刚修改好的配置文件生成qmake,qmake会调用交叉编译器。
-prefix+路径
指定生成的二进制文件的路径。
-nomake tests -nomake tools -nomake examples
不编译测试程序、工具、例子,提高编译速度。
其他的模块是否选用禁用可以看readme文档
我的选择配置:
已经有Makefile文件了
4.make -j4 && make install
5.查看生成文件是否正确
arm平台32位的二进制文件,动态库文件,这样就可以了。
6.测试
qt设计师写个简单界面,交叉编译,下载到板子上,看是否正常运行
注意:
开发板上运行程序,提示找不到动态库库文件
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:(QT的lib路径)
,设置程序的链接路径;
开发板上,程序报错和不显示文字
This application failed to start because it could not find or load the Qt platform plugin "linuxfb" in "/apps/QT5.9/plugins/"
解决:
QT_QPA_PLATFORM_PLUGIN_PATH=/apps/qt/plugins
,设置QT的plugins
路径;configure
时加入-no-conv
参数,显示英文文字;- QT不显示中文,在虚拟机下拷贝
/usr/shared/font/
下的支持中文的.ttf
字库文件到开发板,运行程序时加入参数-fn *.ttf
指定字库路径,使用中文字库。