rust-cmaker/README.md
2023-05-16 08:23:33 +08:00

2.6 KiB
Raw Blame History

rust-cmaker

介绍

2023年了谁还在用传统cmake啊大嘘

用rust封装MinGW的gcc/g++等命令方便一键在vscode中构建c/c++简单项目灵感来自rust的包管理器cargo

现在是开发初期

快速使用

  1. 将本项目找个文件夹放好
    • 然后将本项目的bin文件夹添加到你的环境变量中
  2. 将本项目的bin目录加入到你的环境变量
    • 目前bin目录下应该只有一个名为rcm的可执行程序
    • 本项目构建出来的程序就是这个程序
  3. 找到你放c/c++项目的根目录, 输入 rcm new project 以default为模板创建一个名为project的新项目
  4. 进入生成的project文件夹, 用vscode打开它(cd project; code .)
  5. 在src目录下编写你的程序
  6. 你可以显式指定MinGW文件夹的路径, 详情见rcm build -h,你或许可以用这个实现交叉编译
  7. 目前只能构建目录下src/文件夹里的 .c/.cpp 文件
  8. 默认统一使用g++指令来编译

已知问题

  1. 代码写的依托
  2. 不能判断哪些文件是修改过的, 所以只能全部编译一遍, 很耗时, 而且大概率以后也不会改
  3. 只能指定目录下src/文件夹里的内容来编译以及只能输出到target/bin/目录下, 之后或许会增加新的编译选项
    • 可能会影响到写学校的作业,但管他呢
  4. 需要手动配置环境变量

rcm项目构建说明

  1. 默认情况下, rcm只会构建root/src目录下的文件, 你应当将项目中的代码都放在此文件夹下, 这样你可以在根目录下放点别的, 比如一份README.md文档
  2. 如果root/src中仅有一份.c.cpp文件, 则会将它视为入口直接编译为一份二进制程序
  3. root/src中同级目录下不应存在任何文件名相同但扩展名不同的文件, 比如main.cppmain.c不应同时出现在root/src目录下
  4. 默认情况下, 如果要构建二进制程序, src目录下应该放有一份main.cppmain.c作为入口, 你应该在这里放置主函数
  5. 默认情况下, root/src/bin下的每一个.c/.cpp文件都会独立作为入口构建一份二进制程序, 每个入口程序间互不干扰绕
  6. 在构建时会忽略*/test文件夹下的所有文件, 这样你可以写一点测试
  7. rcm会将项目根目录下的lib文件夹内的所有以lib开头以.a结尾的文件作为静态链接库一起编译
  8. 推荐在root/src的每个文件夹(包括src文件夹它自己)下放一份mod.h文件, 引用这个mod.h文件就可以声明该目录下所有应包括的头文件, 包括子目录。这样构建的库项目会很清晰