Skip to content

项目与命令 ​

关于命令名

安装后的命令带版本号,例如 cpro-26.10.1。本站统一写作 cpro,请替换成你安装的版本,或设置别名,见 多版本管理。

命令一览 ​

命令以拼音为准,英文别名完全等价:

拼音英文作用
chushihuanew在当前目录初始化项目
goujianbuild编译,不运行
yunxingrun编译并运行
anzhuanginstall安装清单里的全部依赖
tianjiaadd添加一个依赖
yichuremove删除一个依赖
jianchadoctor检查编译环境
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,并打印一行 [项目] 告诉你用的是哪一个。

提示语言 ​

编译报错和命令提示用中文还是英文,按以下顺序决定:

  1. cpro.json 里写了 tishi_yuyan,就按它
  2. 环境变量 LANG 以 zh 开头为中文,否则英文
  3. Windows 上没有 LANG 时,看 Windows 界面语言
  4. 都判断不出时用英文

Linux 服务器、Docker 里常常是英文,要中文就在 cpro.json 里写 "tishi_yuyan": "zh"。

目录布局 ​

wo_de_app/
├── cpro.json            提交到版本库
├── .gitignore
├── src/
│   └── rukou.cp
├── cpro_bao/            安装的依赖,不提交
└── mubiao/              编译产物,不提交

chushihua 生成的 .gitignore 已经忽略了 cpro_bao/ 和 mubiao/。

cpro 目前处于测试阶段