网站首页 > 博客文章 正文
有一年时间没更新了,主要是最近一年在忙其他事情,还有原因是拖延症发作,惭愧惭愧。本次主要更新的编译和打包功能,这个功能有开发者第一次提出来已经是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=
[
"*"
]
file描述了当前目录里要打包的cb文件,childdir描述了要继续检索的子目录,这里都是用*,表示检索目录下所有cb文件和子目录。cbmod文件要在每个子目录都有,并描述当前子目录检索的文件和二级子目录,否则会跳过该子目录。
也可以在cbmod文件具体指明要打包的文件和文件夹
file = [
"main.cb"
"tools.cb"
]
childdir=
[
"child1"
"child2"
]
这里没有介绍-compile命令和-pack命令的用法,可以访问官网文档编译和打包这个章节,里面有详细的说明。
希望通过上面的简要说明,让各位理解编译和打包的大致情况,最后,感谢各位开发者的建议和意见,CBrother会越来越好。
猜你喜欢
- 2024-10-03 Qt4/5升级到Qt6吐血经验总结V202308
- 2024-10-03 微软兑现承诺:更新Linux子系统,编译WSL 2内核只需3步
- 2024-10-03 centos7使用源码从python2升级到python3,干货值得收藏
- 2024-10-03 Clion2021大版本更新亮点一览(clion2020.1)
- 2024-10-03 CPack 入门指南(cpaks)
- 2024-10-03 C/C++ 开发工具 CLion 新版发布,10 大新功能抢先看
- 2024-10-03 centos7升级glibc(centos7升级gcc)
- 2024-10-03 ReactOS年度报告:改进shell,增强应用管理
- 2024-10-03 CMake构建Makefile深度解析:从底层原理到复杂项目
- 2024-10-03 网上看了不少,终于把ZlmediaKit流媒体框架搭建起来啦
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)