美文网首页
CMake教程(2):构建和运行

CMake教程(2):构建和运行

作者: MemetGhini | 来源:发表于2021-11-07 23:50 被阅读0次

    最基本的从源代码构建可执行文件的项目只需要三行的CMakeLists.txt文件。例如下面构建一个名为Hello的工程。

    //设定所支持的CMake最小版本
    cmake_minimum_required(VERSION 3.10)
    //设定项目名字
    project(Hello)
    //添加可执行文件构建目标(代码文件)
    add_executable(Hello Hello.cpp)
    

    工程实例目录结构如下:

    .
    ├── CMakeLists.txt
    └── Hello.cpp
    

    Hello.cpp文件内容如下,执行结果为打印Hello World!

    #include <iostream>
    
    int main() 
    {
        std::cout <<"Hello world!" << std::endl;
        return 0;
    }
    

    一般不在CMakeLists.txt同级目录构建项目,否则在根目录生成很多CMake的中间文件会比较混乱。创建一个构建目录叫build

    .
    ├── CMakeLists.txt
    ├── Hello.cpp
    └── build
    

    进入构建目录并通过cmake命令生成makefile,然后用make命令或者cmake --build .命令进行编译。cmake命令参数为CMakeLists.txt所在目录,本例中配置文件在上一级。

    > cmake ..
    

    执行完cmake命令后,会看到在build目录生成很多中间文件,也包括build目录下的makefile

    .
    ├── CMakeLists.txt
    ├── Hello.cpp
    └── build
        ├── CMakeCache.txt
        ├── CMakeFiles
        ├── Makefile
        └── cmake_install.cmake
    

    makefile才是接下来编译的关键,直接在build目录执行make或者cmake --build .命令进行编译

    > make
    

    这时再看看build目录,会发现编译出来了一个可执行文件Hello

    .
    ├── CMakeLists.txt
    ├── Hello.cpp
    └── build
        ├── CMakeCache.txt
        ├── CMakeFiles
        ├── Hello
        ├── Makefile
        └── cmake_install.cmake
    

    接下来执行可执行文件Hello

    > ./Hello
    Hello world!
    

    本文中目录结构的打印用了tree命令。有需求可以通过 brew install tree进行安装,通过tree -L 2命令打印,-L 后面要打印的目录层级。

    相关文章

      网友评论

          本文标题:CMake教程(2):构建和运行

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