通过Makefile可以实现一次性编译多个cpp以及h文件, 相应的, 只需略加处理, 则可将编译好的.o文件存放到指定文件夹内.
如图, 为一个简单的Makefile
它对三个cpp文件进行编译, 分别是main.cpp, BookManger.cpp, Books.cpp, 在这个Makefile中, 首先声明了一个变量obj赋值为编译后的.o文件, 一个main目标, 依赖于变量obj, 如obj中文件比main.exe更新, 则会执行下一行的cmd命令, 然后描述了Books.cpp, main.cpp, BookManger.cpp包含的头文件关系.
当使用make命令执行这个makefile时, 那么它实际上会将编译后的文件都保存到与makefile同一级目录下, 那么实际上我们是不想看到这种情况发生的, 我们更希望它能像visual studio一样能将文件分类打包好,则会显得更加整洁一些.
如图, 为改进后的一个makefile
改进后的makefile加入两个变量, 分别指定cpp存放路径和.o文件存放路径, VPATH代表make指令将会到VPATH指定的目录下寻找, 加入了一个新的依赖关系, 因为上一个makefile中我们使用了make的隐式规则, 也就是让make自行推断cpp文件与.o文件的依赖, 在这里因为我们要将.o文件存放入指定文件夹下, 所以明确指出依赖. 编译后的文件结构如下图所示
其中File文件夹为无关文件夹, src用于存放.cpp文件, obj存放.o文件.
Makefile对文件分类打包
最新推荐文章于 2024-06-03 08:00:00 发布