有一年时间没更新了,主要是最近一年在忙其他事情,还有原因是拖延症发作,惭愧惭愧。本次主要更新的编译和打包功能,这个功能有开发者第一次提出来已经是1年多以前的事情了,我在QQ群里答应近期发布也是今年元月份的事情了,竟然鸽到现在才发布,抱歉抱歉。后续继续发愤图强。再来说说这个版本的功能,在做打包功能时候,我自己测试了一个50+文件的工程文件打包,发现命令行太难敲了,于是借鉴cmake的方式给CBrother提供了一个cbmod机制,用户在每一层文件夹下都写一个cbmod.txt描述一下打包信息,这样方便多了,工程大了也好管理。后续考虑在这个基础上让vscode插件支持一下工程管理,具体怎么搞,还没想清楚,需要继续琢磨下。
下面给大家介绍一下编译和打包
编译与运行
举一个编译的例子,首先我们在目录下创建main.cb文件,代码很简单,打印字符串
下面我们使用-compile命令进行编译,运行如下命令:
E:\cbrother_v2.5.5_win_amd64\cbrother.exe -compile E:\cbrotherwork\packtest\main.cb
运行完后发现脚本旁边出现了一个.cbb文件,用CBrother运行这个cbb文件
运行结果和代码一致
代码中引用cbb文件
我们在main.cb旁边创建一个tools.cb文件,写一个函数给main.cb调用,并修改main.cb代码
在main.cb中引用了tools.cb,并调用了它的函数。然后我们将tools.cb编译为tools.cbb,并删除源码文件tools.cb
之后运行main.cb
也一样调用到了方法。cbb文件除了源码不可见外,其作用与cb文件完全一致。
打包运行
这里继续沿用上面的工程,有main.cb和tools.cb两个文件,执行如下命令打包
E:\cbrother_v2.5.5_win_amd64\cbrother.exe -pack -rootpath=E:\cbrotherwork\packtest -code=main.cb;tools.cb
在目录中生成了一个packtest.cbr文件,之后我们就可以运行这个包里的类了
代码中引用cbr文件
修改main.cb文件,引用packtest.cbr中的tools类,注意一下import处代码的变化
运行main.cb,调用正常
cbr文件和文件目录的区别
为了读者能更好地理解.cbr的引用关系,这里和文件夹做一下对比
.cbr文件本质上是一个压缩包,我们可以使用解压缩软件打开它看看,里面包含的是对应的cbb文件,这种方法也可以检查自己的cbr打包到底是否正确
以下3种情况,对于CBrother的来说,完全等价
cbmod.txt文件
在工程文件过多时,使用命令打包逐个输入文件名很麻烦,可以使用cbmod方式来管理工程
file描述了当前目录里要打包的cb文件,childdir描述了要继续检索的子目录,这里都是用*,表示检索目录下所有cb文件和子目录。cbmod文件要在每个子目录都有,并描述当前子目录检索的文件和二级子目录,否则会跳过该子目录。
也可以在cbmod文件具体指明要打包的文件和文件夹
这里没有介绍-compile命令和-pack命令的用法,可以访问官网文档编译和打包这个章节,里面有详细的说明。
希望通过上面的简要说明,让各位理解编译和打包的大致情况,最后,感谢各位开发者的建议和意见,CBrother会越来越好。
领取专属 10元无门槛券
私享最新 技术干货