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

用crosstool-ng 制作 Windows 上的 aarch64-linux-gnu 交叉编译器

crosstool-ng 官网链接https://crosstool-ng.github.io/docs/需要注意的是crosstool-ng不能以root身份运行否则会提示以下错误[ERROR] You must NOT be root to run crosstool-NG故下面的所有操作都不要在root下进行。当然如果非要用root运行的话也是可以的见本文最后的附注。在嵌入式开发中下面这种场景被称为 “加拿大交叉编译” (Canadian Cross)Build (构建平台):Ubuntu 24.04 (x86_64)Host (运行平台):Windows (x86_64)Target (目标凭他):ARM Linux这正式我们下面要编译的工具链。一、准备 Ubuntu 编译环境sudo apt update sudo sudo apt install -y autoconf gperf \ libncurses5-dev python3-dev texinfo help2man gawk \ libtool libtool-bin bison flex bzip2 build-essential \ automake make mingw-w64 gcc g g-mingw-w64 \ libncurses5-dev libgmp-dev libmpc-dev libmpfr-dev g-mingw-w64-x86-64-posix # 将 mingw 的 gcc 切换为 posix 版本 sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix # 将 mingw 的 g 切换为 posix 版本 sudo update-alternatives --set x86_64-w64-mingw32-g /usr/bin/x86_64-w64-mingw32-g-posix最后两行命令是用来切换线程模型的如果线程模型不切换为posix在编译gdb时会报类似错误 /usr/lib/gcc/x86_64-w64-mingw32/13-win32/include/c/bits/std_mutex.h:164:5: error: __gthread_cond_t does not name a type; did you mean __gthread_once_t?确认线程模型是否切换成功x86_64-w64-mingw32-g -v在输出的最后几行中找到Thread model:这一项。它现在必须显示为posix如果是win32则说明没切换成功。一些依赖的介绍build-essential包含libc、gcc、g、make、dpkg-dev等在编译和构建软件时常用的工具和库flex即Fast Lexical Analyzer Generator是一个可以生成文法分析程序的工具texinfomakeinfo通过单个源文件来生成在线信息和打印输出的文档系统help2man从程序输出自动生成简单的手册文档gawk一种查找替换文本工具libtool通用库支持脚本将使用动态库的复杂性隐藏在统一、可移植的接口中使用libtool的标准方法可以在不同平台上创建并调用动态库主要的一个作用是在编译大型软件的过程中解决了库的依赖问题将繁重的库依赖关系的维护工作承担下来从而释放了程序员的人力资源。libtool提供统一的接口隐藏了不同平台间库的名称的差异等细节生成一个抽象的后缀名为la高层库libxx.la其实是个文本文件并将该库对其它库的依赖关系都写在该la的文件中;bison一种通用解析器生成器它将带注释的上下文无关文法转换为使用LALR1解析器表的确定性LR或广义LRGLR解析器libncurses5-devncurses库提供了一个API允许开发者在文本终端下使用图形用户界面。二、下载并安装crosstool-nggit clone https://github.com/crosstool-ng/crosstool-ng.git cd crosstool-ng ./bootstrap ./configure --enable-local make make installa、编译安装等目录全用crosstool-ng的默认配置不做修改以减少配置步骤默认构建出来的交叉编译器在Home的x-tools文件夹中构建过程中自动下载的依赖包在Home的src文件夹中b、如果git clone https://github.com/crosstool-ng/crosstool-ng.git失败可以先将crosstool-ng手动下载好然后解压到crosstool-ng目录中三、配置./ct-ng menuconfig运行此命令后会打开配置面板配置以下关键项目​Target options​ - ​Target Architecture: 选择 arm​Target options​ - ​Endianness: 选择小端 Little endianTarget options​ -Bitness: 选择64-bit(这会将架构标识符从arm变为aarch64)Target options-Omit vendor part of the target tuple: 我们不需要额外的厂商字段所以勾选它这样就可以屏蔽厂商字段 (默认字段为unknown)​Toolchain options​ - ​Tuples vendor string: 填写自定义厂商字段 (如填写stm, 编译出来则名为aarch64-stm-linux-gnu); 当Omit vendor part of the target tuple被勾选时不会看到这个选项Toolchain options​-Tuples alias: 设置为aarch64-linux-gnu(这样你调用时只需输入aarch64-linux-gnu-gcc)Toolchain options​ -Type-Canadian (这很重要否则是没有Host system配置项的)toolchain type的介绍可以看这一页:https://crosstool-ng.github.io/docs/toolchain-types/Toolchain options​-Build system:修改为x86_64-pc-linux-gnu(默认)Toolchain options​-Host system:修改为x86_64-w64-mingw32(这是让它在 Windows 运行的关键)Toolchain options​-Build static toolchain: 建议勾选Build static toolchain或确保 MinGW 的运行时库被包含在内否则在 Windows 上运行 gcc.exe 时可能会提示找不到libwinpthread-1.dll​Operating System​ - ​Target OS: 选择 linux​Operating System​ - ​Version of Linux: 选择 5.4.302​Binary utilities​ - Version of binutils: 版本选择最新的稳定版或者根据需求选择​C-library​ - ​C library: 选择 glibc​C compiler​ - ​Version of gcc: 选择15.2.0C compiler-C: 勾选Debug facilities: 勾选gdb其他设置保持默认或者根据需要进行调整四、构建./ct-ng build注意构建过程通常需要 30 分钟到 2 小时具体取决于你的机器性能和网速。编译完成后工具链默认保存在~/x-tools/x86_64-w64-mingw32,aarch64-linux-gnu/目录下。附以root身份运行crosstool-ng的方法出于安全性考虑crosstool-ng默认不能以root身份运行如果确定要在root下运行需要在配置中开启这一选项-- Paths and misc options -- [*] Try features marked as EXPERIMENTAL [*] Allow building as root user (READ HELP!) (NEW)在这一选项的HELP文档中可以看到crosstool-ng的作者极力反对用root运行│ CT_ALLOW_BUILD_AS_ROOT: │ │ │ │ You normally do *not* need to be root to build a toolchain using │ │ crosstool-NG. In fact, it is *VERY* dangerous to run as root, as │ │ crosstool-NG will, as part of the build process, remove a few │ │ directories. If anything goes wrong, running as root can ruin │ │ your host distribution. │ │ │ │ I cant stress it enough: DO NOT RUN AS ROOT !! │ │ │ │ Do not run as root, youve been warned. │ │ Do not come whining, if it nukes your host system. │ │ Do not come whining, if you lose any data. │ │ Do not run as root. │ │ │ │ Do not run as root, youve been warned. │ │ Do not come whining, if the Earth stops rotating. │ │ Do not come whining, if kittens are smashed. │ │ Do not run as root. │ │ │ │ Do not run as root, do not run as root! │ │ (ad libitum)

相关文章:

用crosstool-ng 制作 Windows 上的 aarch64-linux-gnu 交叉编译器

crosstool-ng 官网链接:https://crosstool-ng.github.io/docs/ 需要注意的是,crosstool-ng不能以root身份运行,否则会提示以下错误: [ERROR] You must NOT be root to run crosstool-NG 故下面的所有操作都不要在root下进行。当…...

微信网页版浏览器插件:3分钟实现跨设备无缝通讯的终极方案

微信网页版浏览器插件:3分钟实现跨设备无缝通讯的终极方案 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 你是否曾在公司电脑上无法安装微…...

windows环境oracle 11.2.0.1版本数据库启动报错ORA-01589问题的处理

1.问题分析 问题描述:windows环境oracle 11.2.0.1版本数据库异常关闭,之后无法启动,无备份、未打开归档。 故障分析: 1.直观查看数据库的数据文件、REDO文件均在,查看数据文件的最后修改时间,除SYSAUX02.DB…...

如何用OpCore-Simplify实现OpenCore EFI自动化配置:黑苹果配置终极指南

如何用OpCore-Simplify实现OpenCore EFI自动化配置:黑苹果配置终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果…...

数据主权时代:WeChatMsg如何让你的聊天记录真正属于你

数据主权时代:WeChatMsg如何让你的聊天记录真正属于你 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCha…...

虚拟电厂接入现货后,最怕的不是资源不够,而是收益波动失控

2026年的虚拟电厂圈,大家都在焦虑一件事。不是政策不明确——去年底国家能源局发布的《电力中长期市场基本规则》,已经把虚拟电厂作为“新型经营主体”的入市路径、交易限额、结算方式写得明明白白。也不是资源不够——分布式光伏、工商业储能、充电桩、…...

Windows安卓应用安装神器:APK Installer终极指南

Windows安卓应用安装神器:APK Installer终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 想在Windows电脑上直接运行安卓应用吗?厌倦了臃…...

PowerToys屏幕标尺终极指南:免费高效的像素测量工具

PowerToys屏幕标尺终极指南:免费高效的像素测量工具 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trending/po/PowerToys …...

Hitboxer终极指南:如何免费解决游戏键盘SOCD冲突的专业方案

Hitboxer终极指南:如何免费解决游戏键盘SOCD冲突的专业方案 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 还在为游戏中的键盘方向冲突而烦恼吗?当你在激烈的对战中同时按下左右方向键&…...

第九篇:通义灵码(Lingma):阿里云国产补全黑马——多文件编辑+Agent模式,企业私域知识增强的本土利器

(本篇约7600字,2026年4月最新数据,配全新高清界面截图、架构图与多工具对比表,作为专栏第九篇长文) 当Tabnine以Air-Gapped隐私守护者征服合规战场、Amazon Q以AWS深度绑定加速云原生部署、Gemini Code Assist以免费多模型赢得预算敏感开发者、JetBrains AI Assistant以原…...

原子化失业期PHP程序员,别轻易放弃。但方向真错了,也别硬撑,及时掉头不丢人。

这句话是失业期 PHP 程序员在“坚持”与“止损”之间寻找动态平衡的战略智慧。 它的本质是:区分“战术上的困难”与“战略上的错误”。对于前者,需要韧性(Grit)去克服;对于后者,需要勇气(Courag…...

Ryujinx终极指南:免费开源Switch模拟器从零到精通的完整教程

Ryujinx终极指南:免费开源Switch模拟器从零到精通的完整教程 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上畅玩《塞尔达传说:王国之泪》《集合啦&a…...

【GitHub开源项目专栏】TensorRT-LLM深度解析:NVIDIA推理优化引擎架构

摘要 TensorRT-LLM是NVIDIA官方推出的开源LLM推理优化框架,通过AOT编译、算子融合、FP8/INT4量化等核心技术,在H100 GPU上实现了6000 tokens/s的吞吐量。本文深入剖析其核心架构、插件系统、量化技术栈以及与vLLM的生态对比,为企业级LLM部署提…...

微信API开发指南:从入门到精通

本文介绍WTAPI微信API开发框架的核心功能和应用场景一、微信API开发的技术挑战在企业级微信应用开发中,开发者面临以下核心挑战:1. 技术门槛高需要深入了解微信协议,处理复杂的登录流程和消息机制,对开发人员的技术要求较高。2. 功…...

如何高效下载ASMR音频:asmr-downloader完整使用指南

如何高效下载ASMR音频:asmr-downloader完整使用指南 【免费下载链接】asmr-downloader A tool for download asmr media from asmr.one(Thanks for the asmr.one) 项目地址: https://gitcode.com/gh_mirrors/as/asmr-downloader 在快节奏的现代生活中&#x…...

ReplaceItems.jsx:Illustrator对象替换的终极指南,5种模式彻底解放设计师双手

ReplaceItems.jsx:Illustrator对象替换的终极指南,5种模式彻底解放设计师双手 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 在Adobe Illustrator的日常设计…...

设计方案:核心框架搭建与落地实操全指南

当前很多团队在输出设计方案时容易陷入两个极端:要么过度追求创意忽略落地可行性,导致方案最终停留在概念阶段无法产生实际价值;要么完全照搬模板缺乏针对性,无法匹配业务的个性化需求。尤其是电商、新媒体、企业服务等领域的设计…...

epoll

epoll 是 Linux 下的「高性能 IO 多路复用器」,专门用来同时监听大量文件描述符(socket、管道、设备等)的读写事件,不阻塞、CPU 占用极低。 一、为什么要用 epoll? 传统的 select/poll 有致命缺陷: 监听…...

c语言之strok实现字符串分割

int main() {char* str_print = NULL;{char test1[] =...

DebToIPA终极指南:在iOS设备上实现.deb到.ipa的无缝格式转换

DebToIPA终极指南:在iOS设备上实现.deb到.ipa的无缝格式转换 【免费下载链接】DebToIPA Convert .deb apps to .ipa files, on iOS, locally 项目地址: https://gitcode.com/gh_mirrors/de/DebToIPA DebToIPA是一款革命性的iOS应用格式转换工具,让…...

Win11Debloat系统优化工具:让Windows 11回归高效本质的专业指南

Win11Debloat系统优化工具:让Windows 11回归高效本质的专业指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutt…...

解密900万图像:Open Images数据集在计算机视觉领域的革命性应用

解密900万图像:Open Images数据集在计算机视觉领域的革命性应用 【免费下载链接】dataset The Open Images dataset 项目地址: https://gitcode.com/gh_mirrors/dat/dataset 当计算机视觉研究者面临数据稀缺困境时,Open Images数据集如同一座数字…...

BiliTools AI视频总结:告别信息焦虑的终极学习助手

BiliTools AI视频总结:告别信息焦虑的终极学习助手 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 你是…...

3步解锁PS3蓝牙控制器:Windows无线游戏体验全面革新

3步解锁PS3蓝牙控制器:Windows无线游戏体验全面革新 【免费下载链接】BthPS3 Windows kernel-mode Bluetooth Profile & Filter Drivers for PS3 peripherals 项目地址: https://gitcode.com/gh_mirrors/bt/BthPS3 还在为PS3手柄在Windows上无法稳定连接…...

网络自动重连工具:告别频繁断网烦恼的终极解决方案

网络自动重连工具:告别频繁断网烦恼的终极解决方案 【免费下载链接】BIT-srun-login-script 北京理工大学深澜校园网登录脚本,以实现命令行登录或者断线重连等,仅提供登录功能 项目地址: https://gitcode.com/gh_mirrors/bi/BIT-srun-login…...

3步掌握网络资源嗅探:从视频号到直播流的全方位下载方案

3步掌握网络资源嗅探:从视频号到直播流的全方位下载方案 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 还在为无…...

OpenClaw隐私计算:千问3.5-27B本地处理敏感数据对比云端方案

OpenClaw隐私计算:千问3.5-27B本地处理敏感数据对比云端方案 1. 为什么医疗数据需要本地化处理 去年参与某医疗科研项目时,团队需要分析3万份患者电子病历。当我们将数据上传到某商业AI平台后,合规部门紧急叫停——即便已做脱敏处理&#x…...

2025 图形(蓝桥杯十六届C组程序题 C 题)

样例输入&#xff1a;4 5样例输出&#xff1a;20252025202520252025代码如下&#xff1a;#include <stdio.h> #include <string.h>void draw2025(int i,int w) {const char base[] "2025";int baselen strlen(base);for(int j 0;j < w;j){printf(&…...

Ryujinx核心功能全解析:在电脑上流畅体验Switch游戏的完整方案

Ryujinx核心功能全解析&#xff1a;在电脑上流畅体验Switch游戏的完整方案 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 作为一款用C#编写的实验性Nintendo Switch模拟器&#xff0c…...

小红书视频下载神器:三步搞定无水印批量下载,新手也能轻松上手

小红书视频下载神器&#xff1a;三步搞定无水印批量下载&#xff0c;新手也能轻松上手 【免费下载链接】XHS-Downloader 小红书&#xff08;XiaoHongShu、RedNote&#xff09;链接提取/作品采集工具&#xff1a;提取账号发布、收藏、点赞、专辑作品链接&#xff1b;提取搜索结果…...