# rust-cmaker **Repository Path**: Cloyir/rust-cmaker ## Basic Information - **Project Name**: rust-cmaker - **Description**: 用rust封装MinGW的命令,方便一键在vscode中构建c/c++简单项目 - **Primary Language**: Rust - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-04-16 - **Last Updated**: 2023-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: Cpp, Rust ## README # 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.cpp`和`main.c`不应同时出现在`root/src`目录下 4. 默认情况下, 如果要构建二进制程序, src目录下应该放有一份`main.cpp`或`main.c`作为入口, 你应该在这里放置主函数 5. 默认情况下, `root/src/bin`下的每一个`.c/.cpp`文件都会独立作为入口构建一份二进制程序, 每个入口程序间互不干扰绕 6. 在构建时会忽略`*/test`文件夹下的所有文件, 这样你可以写一点测试 7. rcm会将项目根目录下的lib文件夹内的所有以`lib`开头以`.a`结尾的文件作为静态链接库一起编译 8. 推荐在`root/src`的每个文件夹(包括`src`文件夹它自己)下放一份`mod.h`文件, 引用这个`mod.h`文件就可以声明该目录下所有应包括的头文件, 包括子目录。这样构建的库项目会很清晰