当前位置: 首页 > news >正文

Qt交叉编译环境搭建

环境及版本:

编译机:Deepin 20.3 Qt 5.12.9

arm编译工具: gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz

运行机:创龙335X开发板

1.下载arm编译工具:  gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz,下载路径Linaro Releases。解压(编译工具所使用的glibc版本要和目标arm开发板的glibc版本一致,否则程序不能运行,此开发目前版本为glibc2.23)

2.  下载tslib-1.21.tar.gz,并解压,进入目录tslib-1.21,执行命令 

sudo ./configure --host=arm-linux-gnueabihf --cache-file=tmp.cache CC=/home/TME/gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
sudo make -j4 
sudo make install 

3.下载Qt源码:qt-everywhere-src-5.12.9.tar.xz,并解压

3.编辑qt-everywhere-src-5.12.9/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf,把arm-linux-gnueabi-gcc之类文件的全部加上步骤2中bin目录的路径前缀,并且所有arm-linux-gnueabi-xxx中的gnueabi变成gnueabihf

 4.进入qt-everywhere-src-5.12.9 目录,执行

./configure -shared -opensource -confirm-license -release -strip -xplatform linux-arm-gnueabi-g++ -optimized-qmake -c++std c++11 -pch -skip qt3d -skip qtcanvas3d -skip qtdatavis3d -skip qtdoc -skip qtlocation -skip qttools -skip qtwayland -skip qtwebengine -skip qtmacextras -skip qtwinextras -skip qtandroidextras -skip qtx11extras -make libs -make examples -nomake tools -nomake tests -no-openssl -no-opengl -no-sql-sqlite -linuxfb -qt-freetype --harfbuzz=qt --pcre=qt --zlib=qt --libpng=qt --libjpeg=qt -tslib -I /usr/local/include -L /usr/local/lib(根据需要精简)

注意:如果编译为静态库,则第一个参数为-static,动态库,则第一个参数为-shared

5.执行sudo make -j4;sudo make install,完成后安装在/usr/local/目录下

6.安装qtcreator

7.在工具->选项->编译器中配置步骤2中的对应编译工具

8.在Qt version中配置sdk位置

9.在构建套件中选择上面配置的选项

 10.至此,可在Qtcreator中新建项目,并把编译出的程序放到arm开发板上运行

http://www.lryc.cn/news/28387.html

相关文章:

  • Java switch case 语句
  • Linux下MQTT客户端消息订阅与发布实现
  • 代码规范----编程规约(下)
  • c++连接mysql
  • CentOS7操作系统安装nginx实战(多种方法,超详细)
  • 【测绘程序设计】——空间直角坐标转换
  • 数组--java--动态数组--有序数组--底层
  • Linux下使用C语言实现简单的聊天室程序
  • 【数学】任意一个正整数n最多只有一个质因数大于根号n,怎么证明?
  • 【ES6】var let const 之面试题系列
  • Vue基础入门讲义(四)-组件化
  • Android onLayout布局流程解析
  • 浅分析BIG-建筑展示系统
  • 模电基础(1) 半导体基础知识
  • 阅读笔记:TF - IDF 原理
  • 【C语言】float 关键字
  • Linux 网络编程(实现多路IO转接服务器)
  • DC-4 靶场学习
  • QML组件
  • canvas 学习指南
  • 【华为OD机试2023】开心消消乐 C++
  • 学历?能力?
  • 使用ECharts打造一个数据可视化面板
  • 【论文简述】PVSNet: Pixelwise Visibility-Aware Multi-ViewStereo Network(arxiv 2020)
  • CSS隐藏元素的几种方式以及display、visibility、opacity的区别
  • 【Java|golang】1487. 保证文件名唯一---golang中string方法的坑
  • flstudio21水果language选项中文设置方法教程
  • Ubuntu中安装StaMPS
  • Spring Security 实现自定义登录和认证(1)
  • Linux 进程:辨析wait与waitpid