rust-cmaker/README.md

2.8 KiB
Raw Blame History

rust-cmaker

介绍

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

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

现在是开发初期

快速使用

  1. 将本项目找个文件夹放好
    • 本项目需要一个MinGW并将其的bin目录放到你的环境变量里
    • 如果可能请直接将MinGW放到项目目录里,这样能省一点配置的时间
  2. 将本项目的bin目录加入到你的环境变量
    • 目前bin目录下应该只有一个名为rcm的可执行程序
    • 本项目构建出来的程序就是这个程序
  3. 找到你放c/c++项目的根目录, 输入 rcm new project 创建一个名为project的新项目
  4. 进入生成的project文件夹, 用vscode打开它(cd project; code .)
  5. 在src目录下编写你的程序
  6. 使用rcm run构建程序并运行, 或者你需要rcm build --release进行一个o3优化
  7. 你可以显式指定MinGW文件夹的路径, 详情见rcm build -h,你或许可以用这个实现交叉编译
  8. 目前只能构建目录下src/文件夹里的 .c/.cpp 文件
  9. 默认统一使用g++指令来编译

已知问题

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

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. 推荐在root/src的每个文件夹(包括src文件夹它自己)下放一份mod.h文件, 引用这个mod.h文件就可以声明该目录下所有应包括的头文件, 包括子目录。这样构建的库项目会很清晰