Ubuntu 16.04交叉编译arm-linux-gnueabihf的QT5.6.2
文章目录
- 前言
- 一、使用apt安装ubuntu库里的QT
- 二、使用源码交叉编译QT5.6.2
- 三、QTCREATOR添加交叉编译并测试
- 总结
前言
一个项目要用QT5.6.2,交叉编译到imx6里运行,虚拟机ubuntu1604
一、使用apt安装ubuntu库里的QT
运行以下指令安装需要的包,其中libqt5serialport5-dev和qtmultimedia5-dev是我的QT程序在ubuntu下编译需要的组件g+±arm-linux-gnueabihf是用在imx6的交叉编译器
sudo apt install qtbase5-dev qt5-qmake qtcreator libqt5serialport5-dev \
qtmultimedia5-dev gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
安装完成后打开项目,不需要做任何配置即可在ubuntu上编译并运行程序(可能需要安装一些前置的软件,我这边虚拟机用很久了,大部分前置软件都有了),安装完成后版本为QT5.5.3、QTCREATOR3.5.1、arm-linux-gnueabihf-gcc5.4.0
此QT主要用在做验证的,在PC上看界面比较方便
二、使用源码交叉编译QT5.6.2
QT5.6.2比较老了,源码比较难找,在这里贴出来https://download.csdn.net/download/qq_36517072/92182633
解压后修改qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
,因为我们使用的编译器是arm-gnueabihf-g++
,带硬件浮点没匹配的
# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabihf-gcc
QMAKE_CXX = arm-linux-gnueabihf-g++
QMAKE_LINK = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_NM = arm-linux-gnueabihf-nm -P
QMAKE_STRIP = arm-linux-gnueabihf-strip
load(qt_config)
在源码目录输入以下指令生成QT5.6.2的交叉编译版本,注意之前安装完arm-linux-gnueabihf-g++要重新打开一个终端,否则环境变量里可能没有arm-linux-gnueabihf-g++
./configure -prefix /opt/qt5.6.2 -opensource -confirm-license \-xplatform linux-arm-gnueabi-g++ -no-opengl \
-no-openssl -no-sse2 -no-cups -no-glib -no-pkg-config -no-separate-debug-info
make -j8
sudo make install -j8
三、QTCREATOR添加交叉编译并测试
添加交叉编译QT qmake
添加交叉编译器
添加KIT,使用之前的QT和编译器并应用
使用ARM-GCC编译程序,生成应用程序
最粗暴配置库直接将/opt/qt5.6.2/lib
全丢到根文件系统下的/usr/lib/
下,空间敏感也可以自己裁剪
上传并赋予执行权限可以正常运行
总结
主要介绍了ubuntu1604下arm-linux-gnueabihf交叉编译QT5.6.2并测试