IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    宏管理工具之lite-manager

    Elmagnifico\'s Blog发表于 2024-12-03 00:00:00
    love 0

    Foreword

    体验一下群友的宏管理工具

    lite-manager

    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的参数

    image-20241202191533410

    仔细看了一下Makefile,是生产的链接参数就是-M而不是-Map

    image-20241202191650116

    还好lite-manager源码也是有的,修改一下生成脚本

    image-20241202191633425

    再把生成的lm.exe拖到对应的测试目录下,进行测试,一切正常了

    image-20241202191619373

    • 如果不修改lm,make config时也显示不出来当前宏的状态

    规则

    image-20241203110700613

    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的交互版本,不过作者说比较老、过时,所以不推荐用了

    img

    Summary

    lite-manager 总体还是挺小的,显示也还凑活,代码是开放的,完全可以自定义一些

    Quote

    https://gitee.com/li-shan-asked/lite-manager/tree/noui/



沪ICP备19023445号-2号
友情链接