如何下载 carbon-lang nightly 工具链并编译链接运行第一个 Carbon 程序?

发布时间:2026/9/11 14:27:12

如何下载 carbon-lang nightly 工具链并编译链接运行第一个 Carbon 程序? 如何下载 carbon-lang nightly 工具链并编译链接运行第一个 Carbon 程序【免费下载链接】carbon-langCarbon Languages main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)项目地址: https://gitcode.com/GitHub_Trending/ca/carbon-langCarbon 目前还是一个实验项目没有稳定的正式发布版官方提供的可下载产物是 nightly 工具链。本文按照项目根目录 README 中 Getting started 一节给出的流程说明如何下载最新的 nightly 工具链、用它把一个.carbon源文件编译成目标文件、再链接并运行。适用环境是较新的 Ubuntu Linux 或类似发行版Debian、WSL 等并且系统上带有apt和sudo。确认平台支持README 明确说明nightly 工具链只在有限平台上提供官方示例针对 a recent Ubuntu Linux or similar (Debian, WSL, etc.)。如果你在这些平台上可以直接走下面的流程其他平台文档未给出可用说明。nightly 版本本身的含义可以在 版本化文档 中查看它是自动化增量开发版本编号形如MAJOR.MINOR.PATCH-0.nightly.YYYY.MM.DD只在每日自动化测试通过时构建质量以当时的代码树为准。下载 nightly 工具链工具链以 tar 包形式发布文件名为carbon_toolchain-0.0.0-0.nightly.YYYY.MM.DD.tar.gz。README 给出的命令使用date -d yesterday来拼接昨天的日期作为版本号这是因为 nightly 按天构建当天的包在运行命令时通常还未产出# A variable with the nightly version from yesterday: VERSION$(date -d yesterday 0.0.0-0.nightly.%Y.%m.%d) # Get the release wget https://github.com/carbon-language/carbon-lang/releases/download/v${VERSION}/carbon_toolchain-${VERSION}.tar.gz说明${VERSION}是 shell 变量命令可直接在终端执行无需手工替换它由date命令生成格式固定为0.0.0-0.nightly.YYYY.MM.DD。如果某天没有构建成功文档说明 nightly 仅在自动化测试通过时产出可以改日期再试或者到项目 releases 页面查看最近一次实际发布的包。解包并准备第一个 Carbon 源文件下载完成后解包 tar 文件会得到carbon_toolchain-${VERSION}/目录可执行入口在其中的bin/carbon# Unpack the toolchain: tar -xvf carbon_toolchain-${VERSION}.tar.gz然后创建一个最简单的 Carbon 源文件。这是 README 给出的示例# Create a simple Carbon source file: echo import Core library \io\; fn Run() { Core.Print(42); } forty_two.carbon也可以写一个多行版本。仓库自带的 examples/hello_world.carbon 是同样的写法import Core library io; fn Run() { Core.PrintStr(Hello world!\n); }两者结构一致导入Core库的io模块定义fn Run()作为入口。编译到目标文件使用解包出来的carbon命令的compile子命令把.carbon文件编译成目标文件# Compile to an object file: ./carbon_toolchain-${VERSION}/bin/carbon compile \ --outputforty_two.o forty_two.carbon--outputforty_two.o指定目标文件object file的输出路径。命令会走完整的工具链编译流程toolchain/docs/driver.md 说明 driver 负责把各编译阶段串起来例如carbon compile --phaselower file可以指定阶段运行并打印输出。安装链接所需系统库链接阶段还需要一组最少的系统库。README 给出的命令如下# Install minimal system libraries used for linking. Note that installing gcc # or g for compiling C/C code with GCC will also be sufficient, these are # just the specific system libraries Carbon linking still uses. sudo apt install libgcc-11-dev需要说明的副作用这条命令使用sudo以管理员权限修改系统软件包只影响当前机器的系统库安装文档同时说明如果你已经安装了gcc或g也满足链接所需的系统库。链接并运行# Link to an executable: ./carbon_toolchain-${VERSION}/bin/carbon link \ --outputforty_two forty_two.o # Run it: ./forty_twocarbon link的--outputforty_two指定可执行文件输出名。运行./forty_two即完成整个流程源文件经compile变成.o目标文件再经link变成可执行文件并运行。限制与后续工具链仍处于非常早期阶段README 提醒 many things dont yet work且不建议大规模提交 bug 报告更稳健的发行版预计在达到 0.1 milestone 时提供。如果不想在本地装 nightlyREADME 给出的替代入口是浏览器中的 carbon.compiler-explorer.com可以即时试写 Carbon 代码。如果打算自己从源码构建工具链而不是下载 nightlyREADME 指向 contribution_tools.md 的 Setup commands 一节安装 Clang、LLD、libc 依赖再用 Bazel 运行//toolchain目标那是另一条面向贡献者的路径与本文的下载路径互不影响。【免费下载链接】carbon-langCarbon Languages main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)项目地址: https://gitcode.com/GitHub_Trending/ca/carbon-lang创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/11 14:27:12

多维表格搭建CRM商机管理:Teable六级权限体系实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 14:22:12

MCP与A2A双协议驱动的企业级多智能体协同架构

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 14:22:11

FPGA地铁售票系统:跨时钟域设计与时序收敛实战

简介:本资源是一份面向电子类、计算机类专业本科生的FPGA课程设计高分项目,聚焦地铁售票系统的数字逻辑实现,适用于期末大作业、综合实验及数字系统设计实践。资源包含完整Verilog源码(含详细注释)、Nexys4 DDR开发板约…

2026/9/11 15:22:22

小尺寸二维码打印识别率优化方案与实践

1. 项目背景与挑战去年接手公司仓储管理系统升级时,我们遇到了一个看似简单却异常棘手的问题——小尺寸二维码的打印识别率。系统需要在不干胶标签上打印5mm5mm的二维码,用于标识微小零件。初期采用基于Canvas的qrcode.js方案,在屏幕上显示完…

2026/9/11 15:22:22

在线教育大数据分析:Django+Spark+爬虫+Vue实战指南

简介:这是一套基于Django的线上教育平台大数据分析毕设项目,以Python 3.8为基础,整合Spark、爬虫与Vue,面向毕业设计、课程设计、大作业或工程实训场景,既适合入门小白,也适合需要完整工程参考的进阶学习者…

2026/9/11 15:17:21

0.3 TOPS如何重塑端侧AI芯片设计范式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码