体验一下群友的宏管理工具
https://gitee.com/li-shan-asked/lite-manager
群友的宏管理工具,主要在gitee上更新,github更新不及时,release文件可能不能用
至少需要一个make和gun c的环境,之前系统里一直有一个MinGW32 13年的版本,gcc大概只有6,编译过不去(后来发现应该不是这个问题)
通过下面的方式在线安装MinGW64
https://github.com/Vuniverse0/mingwInstaller/releases/download/1.2.1/mingwInstaller.exe
安装完成以后添加环境路径
如果环境里没有多的make,可以把mingw32-make.exe
复制一个改名叫make.exe
,不然最好还是保持原样,否则会影响到系统里其他地方的make使用
测试demo,发现无法正常运行,链接脚本无法识别-M的参数
仔细看了一下Makefile,是生产的链接参数就是-M
而不是-Map
还好lite-manager源码也是有的,修改一下生成脚本
再把生成的lm.exe拖到对应的测试目录下,进行测试,一切正常了
lm.cfg,用来定义宏的定义以及宏之间的关系
proj.cfg,用户定义实际想要的宏
.lm.mk,缓存
config.h,最终处理完约束条件后实际定义出来的宏
lm.cfg中判断条件是自上而下的,遇到冲突点,首先会关闭自身,然后文件之间是从左向右流动的
其中n,表示宏关闭,‘n’是正常使用n这个关键字
同时下面的文件编译的约束也可以同时使用宏来管控
多模块、多组件的工程目录
├───build
├───subdirA
| ├───mac_a.c
| └───lm.cfg
├───subdirB
| ├───mac_b.c
| └───lm.cfg
└───lm.cfg
可以使用include直接把下面的配置加载进去
include "subdirA/lm.cfg"
include "subdirB/lm.cfg"
lm的工程实例可以参考这里,有些技巧example里没有用到,可以看看实例是怎么跑的
https://gitee.com/li-shan-asked/ebraid
lite-manager 同时也有类似tui的交互版本,不过作者说比较老、过时,所以不推荐用了
lite-manager 总体还是挺小的,显示也还凑活,代码是开放的,完全可以自定义一些
https://gitee.com/li-shan-asked/lite-manager/tree/noui/