编程入门

cmake结构的一些些笔记

2018-06-01  本文已影响0人  杨小伟的世界

cmake是个神奇的东西。稍微花了点时间学习了一下下。

先列出参考资料:

cmake tutorial
在 linux 下使用 CMake 构建应用程序

其实我只看了第二个。

最简单的例子

最简单的例子就两个文件

这都是从第二个参考资料抄来的。源代码我也顺便贴一下。

#include<iostream>

int main()
{
    std::cout<<"Hello word!"<<std::endl;
    return 0;
}
PROJECT(main)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
ADD_EXECUTABLE(main ${DIR_SRCS})

使用的步骤是:

cmake .
make

还是挺简单的吧。

Makefile结构的分析

cmake的语法分析不是本文重点,本文重点是生成的Makefile结构是什么样子的。说实话,有点变态啊。

尝试画一个结构图:

Makefile
   |
   +---   CMakeFiles/Makefile2
              |
              + ---  CMakeFiles/main.dir/build.make

每一个cmake出来的工程都有一个目录 CMakeFiles,所有的东西都在这个里面了。

这个目录中都会有一个文件Makefile2,这是一个隐藏boss。不同目录,不同目标的处理在这个文件中。

比如我们的main.cpp就被单独列出了一个目录CMakeFiles/main.dir/。而这个目录中最后才包含了真正编译main.cpp规则的文件--CMakeFiles/main.dir/build.make。

更改规则重新编译

这点cmake有点土,需要手动清除配置的文件。

make clean
find . -name "CMakeCache.txt" | xargs rm -f
find . -name "CMakeFiles" | xargs rm -rf
cmake

当然为了节省点时间,可以只删除特定目录下的配置文件。

好了,凑合先写到这里吧。

上一篇 下一篇

猜你喜欢

热点阅读