Qt交叉编译整理的几点说明
关于交叉编译,对于初学者来说是个极难跨过去的砍(一旦跨过去了,以后遇到需要交叉编译的时候都是顺水推舟、信手拈来。),因为需要搭建交叉编译环境,好在现在厂家提供的板子基本上都是测试好的环境,尤其是提供的编译器,不用自己再去折腾,按照官方手册来基本上不会有啥的的问题。
- 在linux系统上编译ffmpeg和qt都是非常简单的事情,初学者也会,前提只要本地的gcc g++编译器正常。
- 任何编译器包括嵌入式编译器,为了确保环境正常,你可以先查看对应的编译器版本是否ok,g++ -v arm-linux-g++ -v。
- 交叉编译器查看版本 /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-g++ -v 。
- 编译器位数和操作系统位数有关,一般32位的编译器要在32位的系统上做交叉编译,虽然32位也可以在安装依赖后,在64位系统做交叉编译,但是个人不建议,可能会出问题。64位的编译器只能在64位的系统。
- 设置了环境变量则可以省略掉长长的路径,直接打可执行文件名称即可,没有设置环境变量则需要打完整路径。
- 设置环境变量只是为了编译的时候让自动寻找编译器,其实也完全可以不用设置环境变量,使用绝对路径指定编译器位置即可。
- 在linux上编译,无论是ffmpeg还是qt还是其他,都是通用的步骤,第一步:./configure 第二步:make 第三步:make install 。
- 至于具体configure后面有哪些参数,参照对应源码包的手册就行,搜索也一大堆。当然你用默认的就不带任何参数一般也可以,自动采用默认参数进行编译。
- 交叉编译ffmpeg命令:./configure --prefix=host --enable-static --disable-shared --disable-doc --cross-prefix=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux- --arch=arm --target-os=linux
- 交叉编译qt前提:修改mkspecs/qws/linux-arm-g++下面的qmake.conf,如果没有设置环境变量则设置对应编译器的绝对路径,并将编译器的名字改成你需要的。
- 比如修改gcc编译器:QMAKE_CC = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc
- 交叉编译qt4.8.5命令:./configure -prefix host -embedded arm -xplatform qws/linux-arm-g++ -release -opensource -confirm-license -qt-sql-sqlite -qt-gfx-linuxfb -plugin-sql-sqlit -no-qt3support -no-phonon -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-zlib -no-gif -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-rpath -no-pch -no-3dnow -no-avx -no-neon -no-openssl -no-nis -no-cups -no-dbus -little-endian -qt-freetype -no-opengl -no-glib -nomake demos -nomake examples -nomake docs -nomake tools
- 交叉编译qt5.9.8命令:./configure -prefix host -xplatform linux-arm-g++ -recheck-all -opensource -confirm-license -optimized-qmake -release -no-separate-debug-info -strip -shared -static -c++std c++1z -no-sse2 -pch -compile-examples -gui -widgets -no-dbus -no-openssl -no-cups -no-opengl -linuxfb -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype
- 综上所述交叉编译和常规的编译就一个区别,需要手动指定交叉编译器路径。ffmpeg是通过--cross-prefix=指定,qt比较庞大是通过更改配置文件最后通过-xplatform指定配置文件名称。
- Qt6的编译比较繁琐,默认用cmake编译,在linux上先用cmake3.19以上版本的源码,用make编译生成cmake,然后再用cmake编译qt生成qmake,最后调用qmake来编译你的qt项目。
Qt交叉编译整理的几点说明的更多相关文章
- QT 交叉编译工具选择
使用QT交叉编译,生成的都是x86的可执行文件.Zoro告诉我交叉工具配置错了. 参考链接: http://www.cnblogs.com/zengjfgit/p/4744507.html linux ...
- Qt Creator的安装与Qt交叉编译的配置
Qt Creator 的安装 到Qt官网下载Qt Creator https://www.qt.io/download-open-source/ 其它旧版本点击Achieve连接下载 或登录http ...
- QtCreator设置野火iMx6开发板提供的qt交叉编译套件
在Ubuntu18 QtCreator上添加野火iMx6开发板的Qt交叉编译环境PC:Ubuntu18.04QtCreator: 4.8.2交叉编译环境:野火提供的 5-编译工具链->qt交叉编 ...
- PC机安装Qt以及QT交叉编译环境 分类: OpenCV ZedBoard shell ubuntu Eye_Detection 2014-11-08 18:57 246人阅读 评论(0) 收藏
PC: apt-get install qtcreator Qt Embedded for ZedBoard: 下载qt-everywhere-opensource-src-4.7.3.tar.gz, ...
- iMX6 yocto平台QT交叉编译环境搭建
转:https://blog.csdn.net/morixinguan/article/details/79351909 . /opt/fsl-imx-fb/4.9.11-1.0.0/environm ...
- TI PDK3.0 qt 交叉编译环境设置
上午剑锋给的方法,成功在qtcreator上面加入TI官方的qmake以及他的交叉编译器. 1. 步骤如下: 1. 我假设TI PDK3.0 安装目录为顶层目录. 2. 进入linux-devkit ...
- minigui交叉编译整理
简介 MiniGUI 是一款面向嵌入式系统的高级窗口系统(Windowing System)和图形用户界面(Graphical User Interface,GUI)支持系统,由魏永明先生于 1998 ...
- Qt资源整理ING
QCustomPlot:图表库,开源, 链接地址http://www.qcustomplot.com/index.php/download 一些Qt的开发库:http://qt-project.org ...
- QT知识整理
1.connect函数的SIGNAL可以是按键.定时器.其他对象的信号.如果是其他对象的信号,对象必须要在当前类中实例化. 2.Qt数据类型转换 1)int转QStringint a=10;QStri ...
- imx6ull+debian10 构建静态qt交叉编译环境
# PC:Ubuntu18.04# GCC: arm-linux-gnueabihf- 7.4.0# 开发板:# imx6ull+debian10(文件系统为野火提供的) # 此处需要编译的是带gst ...
随机推荐
- element输入天数,获取当前时间加上天数 【时间获取】
handleInput (val) { // console.log(this.formModel.ITEM_PM) if (!(/[^\d]/g).test(val)) { // console.l ...
- 6.flask 源码解析:响应
目录 一.flask 源码解析:响应 1.1 response 简介 1.2 flask 响应(response) 1.3 werkzeug response 1.4 自定义 response Fla ...
- docker容器中启动tomcat应用
Dockerfile FROM tomcat:8.5.46-jdk8-openjdk-slim COPY ecs-console.war /usr/local/tomcat/webapps/ ENV ...
- tauri2.0-admin桌面端后台系统|tauri2+vite5+element-plus管理后台EXE程序
原创Tauri2.0+Vue3+ElementPlus客户端通用后台管理系统Tauri2Admin. tauri2-vue3-admin基于最新跨平台框架 Tauri2.0 整合 Vite5+Vue3 ...
- mysql基础-事务
本篇章为初步了解mysql数据事务控制问题,事务作为MySQL的基础篇章是至关重要的一部分内容! 事务 1.事务简介 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一 ...
- 锋利的在线诊断工具——Arthas
导航 前言 火线告警,CPU飚了 服务重启,迅速救火 黑盒:无尽的猜测和不安 Arthas:锋利的Java诊断工具 在线追踪Cpu占比高的代码段 代码重构,星夜上线,稳了 结语 参考 肮脏的代码必须重 ...
- 基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现三
一.前言介绍: 1.1 项目摘要 随着信息技术的迅猛发展和数字化时代的到来,传统文化与现代科技的融合已成为一种趋势.古诗词作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力.然而,在现代社会中 ...
- 2. jenkins的安装
Docker方式: 如果在安装社区推荐插件时报错,网络延迟,则建议采用官方yum安装 遇到一个问题:公司局域网openstack虚拟机安装时,修改了镜像仍报错,但是自己电脑vmware虚拟机正常,暂时 ...
- Gitlab的基本操作
Gitlab的基本操作 Gitlab添加组 添加组建组有多个项目分支,可以将开发添加到组里面进行设置权限, 不同的组就是公司不同的开发项目或者服务模块,不同的组添加不同的开发即可实现对开发设置权限的 ...
- 2023NOIP A层联测10 T4 子序列
2023NOIP A层联测10 T4 子序列 题面及数据范围 Ps:链接来自accoderOJ. 考场2小时才做完 T1,抱着试一试的心态看了 T4,然后想到做法了,调了 1 个多小时没调除了,赛后发 ...