项目与命令
关于命令名
安装后的命令带版本号,例如 cpro-26.10.1。本站统一写作 cpro,请替换成你安装的版本,或设置别名,见 多版本管理。
命令一览
命令以拼音为准,英文别名完全等价:
| 拼音 | 英文 | 作用 |
|---|---|---|
chushihua | new | 在当前目录初始化项目 |
goujian | build | 编译,不运行 |
yunxing | run | 编译并运行 |
anzhuang | install | 安装清单里的全部依赖 |
tianjia | add | 添加一个依赖 |
yichu | remove | 删除一个依赖 |
jiancha | doctor | 检查编译环境 |
bash
cpro --version # 版本号
cpro --version --verbose # 另外显示平台、LLVM 版本等,报问题时带上命令要写在选项前面:cpro yunxing --liu-ir src/rukou.cp。
依赖相关的三个命令见 使用第三方包,jiancha 见环境配置(Windows / Linux)。
创建项目
bash
mkdir wo_de_app
cd wo_de_app
cpro chushihua在当前目录生成:
wo_de_app/
├── cpro.json 项目清单
├── .gitignore
└── src/
└── rukou.cp 入口文件- 项目名默认取目录名,也可以用
--mingzi(--name)指定:cpro chushihua --mingzi bie_de_mingzi - 项目名只能由小写字母、数字、
-、_组成,以小写字母开头,不以-或_结尾 - 已经有
cpro.json时不会做任何改动;另外两个文件已存在则跳过,不会覆盖
编译与运行
bash
cpro goujian src/rukou.cp # 只编译
cpro yunxing src/rukou.cp # 编译后运行可执行文件放在项目的 mubiao/ 目录下,文件名就是项目名。
| 选项 | 作用 |
|---|---|
--liu-ir | 保留中间文件(.ll / .o),放在 mubiao/ir_huancun/ |
程序的退出码原样返回:入口函数里 fanhui 3,命令的退出码就是 3。
不在项目里时也可以直接编译单个文件:cpro yunxing hello.cp。
cpro.json
json
{
"mingzi": "wo_de_app",
"banben": "0.1.0",
"cpro": "26.10.1",
"rukou": "src/rukou.cp",
"yilai": {}
}| 字段 | 必填 | 说明 |
|---|---|---|
mingzi | 是 | 项目名,决定可执行文件名 |
banben | 是 | 项目自己的版本号,三段数字,如 1.0.0 |
cpro | 否 | 最低 cpro 版本。当前编译器更旧时只警告,不报错 |
rukou | 是 | 入口文件,相对项目根目录 |
tishi_yuyan | 否 | 编译器提示语言:"zh" 或 "en" |
yilai | 是 | 依赖,见 使用第三方包 |
不认识的字段会被忽略,所以字段名拼错不会报错,写完请核对一遍。
cpro.json 所在的目录就是项目根目录。在项目的任意子目录里执行命令都可以,cpro 会向上找到 cpro.json,并打印一行 [项目] 告诉你用的是哪一个。
提示语言
编译报错和命令提示用中文还是英文,按以下顺序决定:
cpro.json里写了tishi_yuyan,就按它- 环境变量
LANG以zh开头为中文,否则英文 - Windows 上没有
LANG时,看 Windows 界面语言 - 都判断不出时用英文
Linux 服务器、Docker 里常常是英文,要中文就在 cpro.json 里写 "tishi_yuyan": "zh"。
目录布局
wo_de_app/
├── cpro.json 提交到版本库
├── .gitignore
├── src/
│ └── rukou.cp
├── cpro_bao/ 安装的依赖,不提交
└── mubiao/ 编译产物,不提交chushihua 生成的 .gitignore 已经忽略了 cpro_bao/ 和 mubiao/。
