如何搭建B语言编译器bext-lang/b开发环境:Rust与GCC依赖完整教程
如何搭建B语言编译器bext-lang/b开发环境Rust与GCC依赖完整教程【免费下载链接】bCompiler for the B Programming Language implemented in Crust项目地址: https://gitcode.com/gh_mirrors/b8/b想要亲手编译运行诞生于贝尔实验室的 B 语言程序吗本文为你带来B语言编译器 bext-lang/b 开发环境的完整搭建教程。这个由 Crust一种 Rust 编程风格实现的 B 语言编译器只需安装Rust 与 GCC两大依赖即可在 Linux、Windows、macOS 三大平台上完成编译、运行与测试。跟着下面的分步教程你可以在 10 分钟内让这台复古编译器跑起来并运行经典的 Hello World 程序。B语言编译器bext-lang/b是什么B 语言由 Ken Thompson 与 Dennis Ritchie 于 1969 年在贝尔实验室设计是鼎鼎大名的 C 语言的前身。bext-lang/b 项目用 Crust 实现了这款历史语言的编译器前端负责词法分析与 IR 生成后端通过可插拔的 Codegen 机制支持 x86_64、aarch64、uxn、6502 等多个目标平台。虽然项目目前仍处于持续开发阶段更多适合休闲编程Recreational Programming但对于语言爱好者来说它是一台绝佳的时光机。搭建开发环境前需要准备的依赖清单好消息是搭建这个 B语言编译器开发环境只需要两个核心依赖依赖作用Rustrustc编译器本体由 Rust/Crust 编写构建时需要 rustcGCC 或 Clangx86_64 与 aarch64 目标生成汇编后需要cc完成汇编与链接在 Linux 上推荐使用gccWindows 下可选用mingw-w64macOS 上 Xcode 自带的clang即可。安装完成后先用两条命令确认环境就绪$ rustc --version $ cc --version看到版本号输出说明两大依赖已就绪可以进入下一步了。获取源码的一键编译步骤搭建 B语言编译器开发环境的关键一步就是拉取源码并用 Makefile 完成构建$ git clone https://gitcode.com/gh_mirrors/b8/b $ cd b $ makemake命令会自动完成三件事编译b编译器本体、构建btest测试工具以及生成build/libb/标准库。构建产物统一输出到build/目录其中入口源码位于 src/b.rs词法分析器在 src/lexer.rsIR 中间表示在 src/ir.rs后端 Codegen 全部位于 src/codegen/ 目录。最快验证方法运行第一个B语言程序编译完成后立刻运行项目自带的 Hello World 示例来验证 B语言编译器是否正常工作$ ./build/b -run ./examples/hello_world.b源码 examples/hello_world.b 内容非常简单仅用extrn printf声明外部函数即可输出文本main() { extrn printf; printf(Hello, World\n); }如果你看到Hello, World输出恭喜你的 B语言编译器开发环境已经搭建成功还可以试试 examples/fizzbuzz.b、examples/snake.b 等更多有趣的示例。如何全面验证开发环境运行官方测试矩阵搭建完成后强烈建议运行一次官方测试套件确认编译器在各目标平台上都表现正常。项目提供了btest工具它会自动构建 tests/ 目录下所有测试用例并在全部支持的目标平台上生成矩阵报告$ ./build/b ./build/btestbtest 支持灵活的筛选参数方便你只验证关心的部分$ ./build/btest -t gas-x86_64-linux # 只测指定平台 $ ./build/btest -c upper -c vector # 只跑指定用例 $ ./build/btest -t *linux -c asm* # 组合 glob 通配符筛选测试工具的使用细节可以参考文档 docs/btest.md。查看支持的目标平台列表bext-lang/b 的亮点之一是多目标后端。想了解当前 B语言编译器支持哪些平台执行$ ./build/b -tlist默认支持的目标包括gas-x86_64-linux / windows / darwin三大桌面平台gas-aarch64-linux / darwinARM 架构平台uxn轻量便携虚拟机的汇编目标posix6502传奇芯片 MOS 6502 的模拟器目标后端架构采用目标Target与 Codegen 分离的设计详见 docs/bgen.md。其中 x86_64 各平台目标共享同一个 Codegen 模块仅因 ABI 差异在参数传递方式上不同。可选依赖配置玩转 uxn 与 6502 趣味目标如果你不满足于常规平台想体验复古硬件目标还需额外配置两个可选依赖uxn 目标需要uxnemu与uxncli两个可执行文件加入系统$PATH环境变量posix6502 目标需要从源码构建单一的posix6502可执行文件并同样放入$PATH配置好这些可选依赖后B语言编译器就能把程序编译到这些有趣的小型虚拟机上运行了。常见问题排查指南搭建 B语言编译器开发环境时遇到报错这里列出高频问题与解决办法报错现象可能原因解决办法rustc: command not found未安装 Rust安装 rustup 或系统包管理器中的 Rustcc: command not found缺少 C 编译器Linux 安装gccmacOS 安装 Xcode Command Line Toolsmake: command not found缺少构建工具安装 GNU Make链接报错-lgcc相关LDFLAGS 平台差异检查 Makefile 顶部针对 Darwin/Android 的链接参数分支延伸学习与项目结构速览搭建好开发环境后想深入了解这个 B语言编译器可以从以下资料入手语言扩展特性说明docs/bext.md涵盖顶层extrn、内联汇编、裸函数等 B 语言扩展测试工具文档docs/btest.mdCodegen 架构文档docs/bgen.md标准库示例libb/all.b 与 libb/README.md入门示例代码examples/从 Rust 与 GCC 两个依赖出发一条make命令即可完成 B语言编译器的构建、运行与测试。无论是想体验 C 语言的前身还是研究多目标编译器架构这个开发环境都是绝佳的起点。现在就动手搭建让 1969 年的 B 语言在你的机器上复活吧【免费下载链接】bCompiler for the B Programming Language implemented in Crust项目地址: https://gitcode.com/gh_mirrors/b8/b创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Django集成gevent-socketio:runserver_socketio命令与自动发现的完整指南

Django集成gevent-socketio:runserver_socketio命令与自动发现的完整指南

Django集成gevent-socketio:runserver_socketio命令与自动发现的完整指南 【免费下载链接】gevent-socketio Official repository for gevent-socketio 项目地址: https://gitcode.com/gh_mirrors/ge/gevent-socketio 在Django项目中实现WebSocket实时通信&a…

2026/8/18 17:44:09 阅读更多 →
磁盘空间去向成谜?Czkawka 14款清理工具一次讲透

磁盘空间去向成谜?Czkawka 14款清理工具一次讲透

磁盘空间去向成谜?Czkawka 14款清理工具一次讲透 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 你打开"此电脑"&#xff0c…

2026/8/18 17:44:09 阅读更多 →
还在一遍遍切换窗口?用 PinWin 窗口置顶工具让重要窗口始终可见

还在一遍遍切换窗口?用 PinWin 窗口置顶工具让重要窗口始终可见

还在一遍遍切换窗口?用 PinWin 窗口置顶工具让重要窗口始终可见 【免费下载链接】pinwin .NET clone of DeskPins software 项目地址: https://gitcode.com/gh_mirrors/pi/pinwin 如果你也经历过这种时刻——一边开着参考资料写方案,一边还要盯着…

2026/8/18 17:44:09 阅读更多 →

最新新闻

Mac 读写 NTFS 移动硬盘受限?免费工具 Free-NTFS-for-Mac(Nigate)一站解决

Mac 读写 NTFS 移动硬盘受限?免费工具 Free-NTFS-for-Mac(Nigate)一站解决

Mac 读写 NTFS 移动硬盘受限?免费工具 Free-NTFS-for-Mac(Nigate)一站解决 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-…

2026/8/18 22:29:35 阅读更多 →
Qwen3.8-27B模型在Ollama平台实现本地多工具调用实战

Qwen3.8-27B模型在Ollama平台实现本地多工具调用实战

这次我们来看一个能让本地大模型真正“干活”的项目:Qwen3.8-27B 模型正式登陆 Ollama 平台,并且原生支持多工具调用。这意味着,你可以在自己的电脑上,通过一个简单的命令行工具,运行一个拥有 270 亿参数、具备强大推理…

2026/8/18 22:29:35 阅读更多 →
Notion API 开发实战:从零构建自动化工作流与数据库集成

Notion API 开发实战:从零构建自动化工作流与数据库集成

之前在做个人知识库和团队项目管理时,尝试过不少工具,总感觉要么太重、要么太散,直到深度使用了 Notion,才真正体会到“All-in-One”工作区的魅力。它不仅仅是一个笔记工具,更是一个可以自由搭建的数据库、一个项目看板…

2026/8/18 22:29:35 阅读更多 →
新能源车市6月销量激增74%:多维驱动力、结构分化与可持续性挑战

新能源车市6月销量激增74%:多维驱动力、结构分化与可持续性挑战

1. 数据背后的市场脉动:一次“意料之外”的强劲增长又到了月初看数据的时候。说实话,看到“6月新能源乘用车销售7.17万辆,同比增长74%”这个标题时,我第一反应是愣了一下,然后赶紧去翻看日历和往期数据。74%的同比增长…

2026/8/18 22:29:35 阅读更多 →
AI智能体循环架构设计:从ReAct到自我迭代的工程实践

AI智能体循环架构设计:从ReAct到自我迭代的工程实践

在实际 AI 项目开发中,我们常常遇到一个核心挑战:如何让一个 AI 智能体(Agent)不仅能够执行单次任务,还能自主地、持续地处理一个需要多步骤、有状态、甚至能根据反馈调整策略的复杂流程。这背后的关键,就是…

2026/8/18 22:29:35 阅读更多 →
Lyft IPO深度复盘:从资本运作到商业模式反思

Lyft IPO深度复盘:从资本运作到商业模式反思

1. 项目概述:一次教科书级的资本运作 最近几年,科技公司的IPO(首次公开募股)一直是资本市场最引人注目的焦点之一。它不仅是公司发展历程中的一个里程碑,更是检验其商业模式、市场前景和团队能力的“成人礼”。我们今天…

2026/8/18 22:28:34 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →