从Makefile到CMake

开始

原始的文件如下 :

我们新建一个 Makefile

1
2
3
main: main.cpp add.cpp

    g++ main.cpp add.cpp -o main

然后再同级目录下就可以调用 make 文件来生成可执行文件了,cs 144lab 0 也是如此,其中 make 的动作用处就是制作可执行文件 webget,然后传入两个参数的同时调用程序

回到我们刚刚的代码,这里我们同级目录下 make

出现可执行文件:

那么怎么方便的 Makefile 为什么我们还需要使用 CMake?

统一了编译流程

虽然 Makefile 直接通过 make 就可以编译,似乎很简单,但是遇到的问题就是在于无法跨平台使用(假设只能在 win 上使用 visualstudio)
所以 CMake 就起到了统一的作用

如何通过 CMake 来编译可执行文件

编译过程

由于我们的编译文件都在同级所以要先移动到 build 文件下

cmake .. 后面一个参数-B 的作用是指定 Makelists.txt 的位置
可以看到 build 文件夹下就有我们编译好的文件了

而这个过程在 win 平台下也是统一的,十分的方便

生成可执行文件

然后我们通过最后的 cmake --build . 也是各个平台通用的

然后我们还可以通过 cmake ../lesson1_1 -DCMAKE_ ERBOSE_MAKEFILE=ON 添加一个开关来输出生成可执行文件的详细的信息,做到对编译工具的打印信息进行自定义管理