美文网首页编程入门
cmake结构的一些些笔记

cmake结构的一些些笔记

作者: 杨小伟的世界 | 来源:发表于2018-06-01 18:40 被阅读0次

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

    先列出参考资料:

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

    其实我只看了第二个。

    最简单的例子

    最简单的例子就两个文件

    • main.cpp
    • CMakeLists.txt

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

    #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
    

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

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

    相关文章

      网友评论

        本文标题:cmake结构的一些些笔记

        本文链接:https://www.haomeiwen.com/subject/xubksftx.html