Windows 环境配置
已经配置过?
环境只需要配置一次,之后安装新版本的 cpro 不用再配。已经配置过的话,直接跑一遍 自检 确认即可。
为什么要配置
cpro 自带 LLVM,从源码到目标文件这一整段由它自己完成。缺的只有最后一步:链接——把目标文件和系统库拼成 .exe。这一步 cpro 调用 mingw-w64 的 gcc 来完成,所以需要装一份 mingw-w64 工具链。
必须是 UCRT 版
mingw-w64 有 UCRT 和 msvcrt 两种版本,cpro 要求 UCRT 版。装错了不会报错,但程序的部分输出会丢失或乱序。按下面的步骤用 MSYS2 安装就不会出错。
1. 安装 MSYS2
从 https://www.msys2.org 下载安装器,一路默认,装到 C:\msys64。
中国大陆用户从官网下载可能很慢,可以从镜像站下载同一个安装器(选文件名形如 msys2-x86_64-<日期>.exe 的最新一个):
- 清华大学:https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/
- 中国科学技术大学:https://mirrors.ustc.edu.cn/msys2/distrib/x86_64/
2. 换国内镜像(中国大陆用户)
从开始菜单打开 「MSYS2 UCRT64」,执行:
sed -i "s#https\?://mirror.msys2.org/#https://mirrors.tuna.tsinghua.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist*
pacman -Syupacman -Syu 第一次运行可能提示关闭窗口后重新打开再运行一次,照做即可。
3. 安装工具链
仍在 「MSYS2 UCRT64」 窗口里执行:
pacman -S mingw-w64-ucrt-x86_64-gcc如果要用标准库的 http 模块,再装 libcurl:
pacman -S mingw-w64-ucrt-x86_64-curl注意窗口
开始菜单里有好几个 MSYS2 快捷方式,必须用「MSYS2 UCRT64」。「MSYS2 MINGW64」装出来的是 msvcrt 版。
4. 加入 PATH
把下面这个目录加入系统环境变量 Path:
C:\msys64\ucrt64\bin设置方法:设置 → 系统 → 系统信息 → 高级系统设置 → 环境变量 → 编辑 Path → 新建。
它必须排在其他含 gcc.exe、clang.exe、cc.exe 的目录前面,可以用「上移」按钮调整。常见的会抢在前面的目录:
| 目录 | 里面可能有 |
|---|---|
C:\Program Files\LLVM\bin | clang.exe |
C:\Program Files\mingw64\bin、C:\mingw64\bin | gcc.exe |
C:\msys64\mingw64\bin | gcc.exe(msvcrt 版) |
不要把 C:\msys64\usr\bin 加进 Path,它会顶掉 Windows 自带的 find、sort 等命令。
cpro 自己的目录在安装时已经加入 Path(安装界面里的"添加到系统 PATH",默认勾选)。
自检
重新打开 cmd 或 PowerShell(已打开的窗口看不到 Path 的变化),运行:
cpro-26.10.1 jianchajiancha 的英文别名是 doctor。它会依次检查编译器文件、链接器、C 运行时,并试编译运行一个小程序。环境正常时输出类似:
cpro 26.10.1 环境自检(windows-x86_64)
编译器: C:\Program Files\cpro\26.10.1\cpro-26.10.1.exe
[通过] 编译器文件
[通过] 链接驱动
使用: C:\msys64\ucrt64\bin\cc.exe
[通过] C 运行时
UCRT
[通过] 试编译运行
[通过] libcurl(可选,http 模块要用)
结论: 环境正常有失败项时,它会给出修复建议。libcurl 一项没装只显示"未装",不算失败。
常见问题
报错「找不到 C 编译器(cc/clang/gcc),无法链接」
Path 里没有工具链。检查第 4 步是否完成,改完后是否重新打开了终端。VS Code 等编辑器的内置终端需要重启整个编辑器。
链接报一堆 undefined reference,符号名里带 _imp
用到了别的 clang.exe(比如 Windows 版 LLVM 自带的)。按第 4 步调整 Path 顺序,让 C:\msys64\ucrt64\bin 排在前面。
程序能编译能运行,但 print 的输出丢失或乱序
链接时用到了 msvcrt 版的 gcc。运行 cpro-26.10.1 jiancha,看「C 运行时」一项是不是 UCRT,再按第 4 步检查 Path 顺序。
pacman -S 很慢或反复下载失败
没有换国内镜像,或者没有生效。回到第 2 步重做一遍。
报错找不到 std 或 libcpro_rt.a
cpro 的安装目录不完整,重新运行安装包即可。见 多版本管理。
