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