安装 C* 工具链
EN | 中文
目前,C* 支持 darwin-x64darwin-x64、darwin-aarch64darwin-aarch64、linux-x64linux-x64 和 linux-aarch64linux-aarch64 平台。 C* 尚不原生支持 Windows,Windows 用户可以通过 WSL 或 Docker 使用 C* 工具链。
- 在 VSCode 中搜索 CStar Language 扩展,安装其预发布版本(pre-release)。
- 按
ctrl+shift+pctrl+shift+p(macOS 上为shift+cmd+pshift+cmd+p)打开命令面板,输入并选择CStar IDE: Download CStar ToolchainCStar IDE: Download CStar Toolchain。 - 在弹出的对话框中确认安装脚本将从
https://cstarlang.orghttps://cstarlang.org下载,然后点击“Yes”开始下载。 - 下载完成后,VSCode 会提示重启并启用扩展;如果没有出现提示,请手动重启 VSCode。
- 新建一个文件夹(例如
hellohello),在其中初始化 C* 项目(例如cd hello ; cstarc initcd hello ; cstarc init),然后在 VSCode 中打开该文件夹。 -
将
clangdclangd指向 C* 修改版(cst_clangdcst_clangd)以获得更好的编辑体验。- 选项一:在 VSCode 设置界面中,将工作空间的
clangd.pathclangd.path设置为cst_clangdcst_clangd。 - 选项二:在
.vscode/settings.json.vscode/settings.json中添加{ "clangd.path": "cst_clangd" }{ "clangd.path": "cst_clangd" }。 - 如果编辑 C* 文件时仍提示无法识别 C* 语法,请再次重启 VSCode。
- 选项一:在 VSCode 设置界面中,将工作空间的
- 如果 HOL Light 服务器没有使用默认端口
70007000,请将扩展的cstar.portcstar.port设置为相应端口。
- 在 Linux 或 macOS 上执行
curl -fsSL https://cstarlang.org/install/unix.sh | bashcurl -fsSL https://cstarlang.org/install/unix.sh | bash。 - 运行
cstarc --helpcstarc --help查看命令行工具的使用说明。
我们提供的 Docker 镜像预置了 C* 工具链,可用作 VSCode Dev Container,无需在本地安装工具链。
- 拉取预制镜像:
docker pull stonebuddha/cstar:latestdocker pull stonebuddha/cstar:latest。 - 在项目根目录下创建
.devcontainer/devcontainer.json.devcontainer/devcontainer.json,内容如下。 - 在 VSCode 中安装 Dev Containers 扩展,然后执行命令
Dev Containers: Reopen in ContainerDev Containers: Reopen in Container。
{ "name": "C* (CStar)", "image": "stonebuddha/cstar:latest", "customizations": { "vscode": { "extensions": [ "cstar-team.cstarlang@prerelease", "llvm-vs-code-extensions.vscode-clangd" ], "settings": { "clangd.path": "cst_clangd", "clangd.checkUpdates": false } } }}
{ "name": "C* (CStar)", "image": "stonebuddha/cstar:latest", "customizations": { "vscode": { "extensions": [ "cstar-team.cstarlang@prerelease", "llvm-vs-code-extensions.vscode-clangd" ], "settings": { "clangd.path": "cst_clangd", "clangd.checkUpdates": false } } }}