Ubuntu 16.04交叉编译arm-linux-gnueabihf的QT5.6.2


文章目录


前言

一个项目要用QT5.6.2,交叉编译到imx6里运行,虚拟机ubuntu1604


一、使用apt安装ubuntu库里的QT

运行以下指令安装需要的包,其中libqt5serialport5-dev和qtmultimedia5-dev是我的QT程序在ubuntu下编译需要的组件g+±arm-linux-gnueabihf是用在imx6的交叉编译器

sh 复制代码
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++,带硬件浮点没匹配的

sh 复制代码
# 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++

sh 复制代码
./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并测试

相关推荐
zz_nj2 小时前
工作的环境
linux·运维·服务器
极客先躯2 小时前
如何自动提取Git指定时间段的修改文件?Win/Linux双平台解决方案
linux·git·elasticsearch
suijishengchengde3 小时前
****LINUX时间同步配置*****
linux·运维
qiuqyue3 小时前
基于虹软Linux Pro SDK的多路RTSP流并发接入、解码与帧级处理实践
linux·运维·网络
切糕师学AI4 小时前
Linux 操作系统简介
linux
南烟斋..4 小时前
GDB调试核心指南
linux·服务器
爱跑马的程序员4 小时前
Linux 如何查看文件夹的大小(du、df、ls、find)
linux·运维·ubuntu
oMcLin7 小时前
如何在 Ubuntu 22.04 LTS 上部署并优化 Magento 电商平台,提升高并发请求的响应速度与稳定性?
linux·运维·ubuntu
Qinti_mm7 小时前
Linux io_uring:高性能异步I/O革命
linux·i/o·io_uring
优雅的38度7 小时前
linux环境下,使用docker安装apache kafka (docker-compose)
linux·架构