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

42 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`文件就可以声明该目录下所有应包括的头文件, 包括子目录。这样构建的库项目会很清晰