Windows 上如何通过 WSL 搭建 carbon-lang 构建环境并构建工具链?
Windows 上如何通过 WSL 搭建 carbon-lang 构建环境并构建工具链【免费下载链接】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本文的任务是在 Windows 上从零搭建 carbon-lang 的开发环境并构建出 Carbon 工具链。Carbon 官方文档指出的最简单方式是使用 WSL在 Windows 上通过wsl --install安装 Ubuntu然后在 Ubuntu 中按 Debian/Ubuntu 的 setup 流程安装 Clang、LLD、libc 等构建依赖最后用 Bazel 构建//toolchain目标。需要注意的是 Carbon 目前是实验性项目工具链处于很早期的阶段这条路径主要服务于想构建工具链或参与贡献的开发者。用 WSL 安装 Ubuntu在 Windows 的终端中执行文档给出的命令安装 WSL默认会装上 Ubuntuwsl --install文档说明见 contribution tools安装完成后后续所有操作都在 WSL 的 Ubuntu 环境内进行并直接按文档中 Debian or Ubuntu 一节的 setup 指令执行。文档还提到配置 VS Code 通过 WSL 远程开发可以参考 VS Code 官方的 WSL 文档。安装构建依赖以下命令都在 WSL 的 Ubuntu 终端中执行。先更新 apt 并确认clang版本是否达到最低要求 19输出中冒号前的数字需大于 19例如1:19.0-1# Update apt. sudo apt update # Check that the clang version is at least 19, our minimum version. That needs # the number of the : in the output to be over 19. For example, 1:19.0-1. apt-cache show clang | grep Version:然后安装构建所需的包。注意两点libc-dev等要使用与上面查到的 Clang 相同的版本不要安装libunwind-dev文档明确说它是另一个实现不能用sudo apt install \ clang \ gh \ libc-dev \ libcabi-dev \ libunwind-21-dev \ lld \ lldb接着用cargo安装 Python 脚本运行工具uv和 Git hooks 工具prek该命令依赖已装好的cargocargo install --locked uv prek可选分支系统自带的 clang 低于 19如果查到的clang版本早于 19 但发行版还留有 19可以安装显式带版本号的工具集并在 Carbon 检出目录中通过user.bazelrc告诉 Bazel 在哪里找到clang-19也可以改为导出CC环境变量或把它加入PATHsudo apt install \ clang-19 \ libc-19-dev \ libcabi-19-dev \ lld-19 \ lldb-19 # In your Carbon checkout, tell Bazel where to find clang. echo build --repo_envCC$(readlink -f $(which clang-19)) user.bazelrc文档给出的经验是大多数 LLVM 19 的安装都能构建 Carbon如果系统源里没有合适的版本可以从 apt.llvm.org 安装 Clang 工具此文档未展开具体步骤属于可选途径。获取 carbon-lang 代码文档的主路径使用gh完成 fork 和克隆gh已在上一步随依赖装好gh repo fork --clone carbon-language/carbon-lang cd carbon-lang prek installprek install的作用是安装 Git hooks在提交时自动运行 linter 和 formatter。如果没有配置 GitHub fork 流程也可以用 README 中给出的普通克隆方式地址来自 READMEgit clone https://github.com/carbon-language/carbon-lang cd carbon-lang构建工具链并验证文档给出的验证方式是先跑仓库测试./scripts/run_bazelisk.py test //...:allrun_bazelisk是 Bazelisk 的封装它会下载并运行仓库配置中指定的 Bazel 版本见 .bazelversion首次构建会拉取较多依赖耗时较长。测试通过后构建工具链本体。文档的示例命令是构建并运行工具链的help子命令用来查看命令行文档这也是工具链已构建成功的直接体现来自 README./scripts/run_bazelisk.py run //toolchain -- help如果这一步能正常输出carbon命令行的帮助内容说明从 WSL 环境到工具链构建的整条路径已经走通。构建问题排查构建失败时按 contribution tools 的 troubleshooting 一节处理先查 LLVM 版本。很多构建问题来自clang/llvm的构建选项尤其是系统自带版本。执行clang --version看到的版本应至少是 19若是旧版本按上文可选分支更新或使用 clang-19 的专门说明。更换过系统安装的 LLVM/依赖后执行bazel clean。文档说明bazel可能感知不到系统包的变化例如更换 LLVM 版本、补装 libcbazel clean会强制重建缓存状态。收集诊断信息。文档列出的排查命令这些命令只读取环境信息不会修改系统echo $CC which clang which clang-19 clang --version grep llvm_bindir $(bazel info workspace)/bazel-execroot/external/clang_toolchain_extensionbazel_cc_toolchain/clang_detected_variables.bzlVS Code 与终端混用会使构建缓存失效。文档提示Visual Studio Code 会修改其终端中的PATHPATH差异会让bazel检测到不同的启动选项并丢弃构建缓存。建议在普通终端和 VS Code 之间二选一运行bazel不要混用VS Code 仍可用于编辑文件。可选缩短 bazel 命令run_bazelisk.py每次输入较长。文档给出两种简化方式把bazel设为指向run_bazelisk.py的 alias或者单独安装一个 bazelisk 发行版加入$PATH再让bazel指向它。这只影响输入习惯不影响构建结果。限制说明按 README 的说明Carbon 工具链仍非常早期很多东西尚未实现官方也提醒先不要提交大量 bug 报告预期在达到 0.1 milestone 时才能提供健壮得多的发布版本。因此本文路径的目标是能够构建出工具链并验证其基本运行而不是得到一个可用于日常编译 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-lang创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考