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并测试

相关推荐
lThE ANDE2 小时前
最完整版Linux安装Redis(保姆教程)
linux·运维·redis
郝亚军6 小时前
ubuntu通过samba,让win11可以访问其共享文件夹
linux·服务器·ubuntu
一个人旅程~6 小时前
旧电脑的“拯救者”?Linux Mint20.3是怎样适配软件硬件以及兼顾兼容与性能的平衡的?
linux·经验分享·电脑
小夏子_riotous6 小时前
Docker学习路径——3、常用命令
linux·运维·服务器·学习·docker·容器·centos
其实防守也摸鱼7 小时前
无线网络安全---WLAN相关安全工具--kali(理论附题目)
linux·安全·web安全·学习笔记·kali·命令模式·wlan
uesowys8 小时前
CentOS Linux安装部署OpenClaw
linux·centos·安装部署openclaw
IMPYLH8 小时前
Linux 的 rm 命令
linux·运维·服务器·网络·bash
YIN_尹9 小时前
【Linux系统编程】进程地址空间
linux·c++
代码中介商10 小时前
手把手教你Linux 打包压缩与 gcc 编译详解
linux·运维·服务器·编译·打包·压缩
longerxin202010 小时前
阿里云AlmaLinux操作系统允许root登录配置步骤
linux·服务器·阿里云