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

linux_x86_64 虚拟机交叉编译aarch64平台qt源码

之前尝试过在linux_x86_64上用交叉编译工具链编译arm架构的qt源码, 最后虽然能成功编译, 但是在qtcreator里面调用工具链后会编译错误, 实在无法解决, 最后放弃。
这里只能劝大家,没事不要交叉编译这种qt量级的源码,整个过程相当痛苦,还是直接在原生的ARM架构下编译源码,不容易出错。
这里把遇到的亿点问题放到下面,内容有点乱,仅供参考。

交叉编译操作步骤

  1. Linaro交叉编译工具链下载
    gcc-linaro-4.9.4-2017.01-rc1-x86_64_aarch64-linux-gnu.tar
    是一个 Linaro 提供的基于gcc4.9.4版本的, 交叉编译工具链(cross-toolchain),用于在 x86_64 主机(如你的 PC)上编译 AArch64(ARM64)架构 的 Linux 目标代码。

  2. qt源码

  3. 解压,并测试工具是否能用
    tar -xf gcc-linaro-4.9.4-2017.01-rc1-x86_64_aarch64-linux-gnu.tar -C /opt
    设置临时环境变量
    export PATH=/...../gcc-linaro-4.9.4-2017.01-rc1-x86_64_aarch64-linux-gnu/bin:$PATH
    也即
    export PATH=/home/root19/ComplieChain/gcc-linaro-4.9.4-2017.01-rc1-x86_64_aarch64-linux-gnu/bin:$PATH
    编译example
    aarch64-linux-gnu-gcc hello.c -o hello_arm64

  4. 添加脚本
    1.替换qmake.conf: /home/root19/ComplieChain/qt-everywhere-src-5.14.2/qtbase/mkspecs/linux-arrch64-linaro-g++
    2.qt源码目录添加 configure.sh脚本,如果需要编译qml,opengl,webengine等模块,需要在文件中./configure部分,删掉-no-opengl类似这种的,如果不需要就加上
    3.qt源码上一级目录 添加gcc541Compile.sh脚本,修改QT_SOURCE_DIR_NAME为该文件夹下的qt源码文件夹名字
    4.修改三个脚本中的TOOLCHAIN_PATH变量为交叉编译工具链的下的bin目录

  5. 在qt源码上一级目录,即gcc541Compile.sh所在目录,运行该脚本

  6. 正常会编译一部分,然后提示出错std::numeric_limits,需要改源码,具体根据出错信息,查找出错文件的位置,我的是
    /home/root19/Qt/qt-everywhere-src-5.12.8/qtbase/include/QtCore/../../src/corelib/global/qendian.h ,直接粘贴到文件管理器,跳转到该文件,在#include部分添加 #include <limits>,有时候不只一个文件有问题,需要重新编译一下再看,再改


交叉编译问题

    • [ ]
  • [ ]
In file included from /home/root19/ComplieChain/qt-everywhere-src-5.14.2/qtbase/src/corelib/text/qbytearray.cpp:42:/home/root19/ComplieChain/qt-everywhere-src-5.14.2/qtbase/src/corelib/text/qbytearraymatcher.h: In static member function ‘static QStaticByteArrayMatcherBase::Skiptable QStaticByteArrayMatcherBase::generate(const char*, uint)’:/home/root19/ComplieChain/qt-everywhere-src-5.14.2/qtbase/src/corelib/text/qbytearraymatcher.h:103:38: error: ‘numeric_limits’ is not a member of ‘std’  103 |         const auto uchar_max = (std::numeric_limits<uchar>::max)(); 

在/home/root19/ComplieChain/qt-everywhere-src-5.14.2/qtbase/src/corelib/text qbytearray.h 添加 #include


QT项目编译问题

这里我用过一个开源报表库, 它需要手动编译, 所以发生了一些问题

1. kdreports库问题
2. qt库问题
  • [paths] 
    Prefix = ..
    
    ② 删掉qt.conf 目录需要和之前编译qt时候的一样
    ③ 重新清除编译qt

http://www.jsqmd.com/news/1250570/

相关文章:

  • 一位直博生的 AI 编程困境,会语法,却写不出项目?|AI悦创VibeCoding/Python一对一辅导分享
  • HarmonyOS7 传感器开发:加速度计做个摇一摇,原来这么简单
  • 2026 年 7 月新发布:常熟有实力的无机纤维喷涂工程公司电话实力厂家推荐,揭秘:高强度无机纤维喷涂的秘密工厂电话曝光-佑辰隔音保温 - 鉴选官
  • WordPress国际化多语言建站插件:解决Hreflang标签的3个报错
  • 小程序自动部署埋点
  • AI 驱动的 Rust 代码生成:从接口描述自动生成样板代码的边界探索
  • 企业级NAS建设方案
  • 2026十大生产制造ERP:警惕出货量误导,基于MES集成度与工单闭环逻辑重排
  • 椰林海鲜码头企业新愿景是什么?:怀信坚守本心 - 17728181569
  • 陕西正规美容培训学校:行业标准解析与选型指南 - 商业大观
  • 基于人脸识别的无人值守自习室预约系统设计与实现
  • Kimi K3 实测:2.8T 参数、100 万上下文,我让它做了网页、PPT 和 3D 游戏
  • 阿里云服务器配置 LLM 推理服务教程
  • 具身智能重构高墙透明治理:视频孪生+无感空间感知,打造司法监所全域穿透防线
  • 汽车四轮称重系统十大品牌前十榜单揭晓,浙江润鑫质量稳定品质靠谱厂家值得信赖 - 品牌速递
  • 2026防腐压力传感器前十榜单公示,广东犸力登上权威行业排行榜 - 品牌速递
  • Node.js三方库鸿蒙 PC 移植:鸿蒙PC开发者面对面 · 线下课件PPT分享
  • OpenHarmony 小鸿 AI 开发实战 02:从板级源码读懂 WS63、CI1302、ST7789 与外部 Flash
  • HarmonyOS7 嵌套滚动:Scroll + List 嵌套滚动的正确姿势
  • 因算力紧缺,月之暗面Kimi宣布暂停C端新用户订阅;ASML回应向全球员工发2万欧元股权激励;Qwen3.8-Max预览版上线 | 极客头条
  • 2026深圳盐田搬家公司深度测评全攻略|资质合规口碑靠谱+街坊实测口碑过硬+避坑指南 - 厚道搬家
  • 边贸黄金“避坑战”实勘:2026凭祥正规回收老牌三强全维度深度拆解 - 华金汇黄金回收
  • Unlayer:可嵌入产品的内容创作平台,数天上线赋能多场景创作!
  • 七大算法完整总结:冒泡 / 插入 / 选择 / 快排 / 归并 / 堆排 + 二分查找
  • 2026年北京周边宠物训练学校权威排行揭晓
  • 豆包视频去水印方法怎么用?2026个人收藏向实用教程 - 免费软件工具方法教程
  • 【关注可白嫖源码】--课程设计--毕业设计--springboot体育馆运营管理平台[编号:project75681](案件分析)
  • LaCo: Large Language Model Pruning via Layer Collapse 解读
  • Kimi K3横空出世!中国AI模型仅用几周便反超美国,市场震动,闭源模型岌岌可危!
  • 2026图片去水印用什么工具?手机与电脑免费去水印方法合集 - 免费软件工具方法教程