如何使用 CMakeLists.txt 在 CMake 项目中生成一个可执行程序
作者:mmseoamin日期:2024-01-30

文章目录

    • main.cpp
    • CMakeLists.txt
    • 创建一个构建目录
    • 运行 CMake
    • 编译项目
    • 总结

      main.cpp

      #include 
      /**
       * 代码作者:小秋SLAM入门实战
       * 开发环境:Ubuntu 16.04
       * 运行依赖:C++ 11
       */
      int main(int argc, char** argv){
          std::cout<<"小秋SLAM入门实战"< 
      

      CMakeLists.txt

      cmake_minimum_required(VERSION 2.8.4)
      # 隐式定义变量_BINARY_DIR,_SOURCE_DIR,PROJECT_BINARY_DIR,PROJECT_SOURCE_DIR
      # HELLO_SOURCE_DIR 工程路径~/cmake_tutorial/tutorial_1
      # HELLO_BINARY_DIR 编译路径~/cmake_tutorial/tutorial_1/build
      # 可以使用MESSAGE打印这两个变量的值
      project(tutorial_1)
      # 生成可执行文件
      add_executable(tutorial_1 main.cpp)
      # MESSAGE 向终端输出信息
      message(STATUS "This is BINARY dir " ${PROJECT_BINARY_DIR})
      message(STATUS "This is SOURCE dir " ${PROJECT_SOURCE_DIR})
      message( "This is BINARY dir " ${PROJECT_BINARY_DIR})
      message( "This is SOURCE dir " ${PROJECT_SOURCE_DIR})
      # 跨平台 Linux/Unix平台生成 makefile
      # 管理大型项目
      # Cmake 的工具链:cmake+make
      # CMakeLists.txt每个目录一个
      # CMakeLists.txt文件名是大小写相关
      # cmake语法
      # 变量大小写相关使用${}方式取值,区别于IF需要变量名而不是变量值
      # 指令大小写无关(参数 1 参数 2...)参数大小写相关使用括弧括起之间使用空格或分号分开
      

      使用 cmake .. 和 make -j 来编译项目是 CMake 常见的构建步骤。这些命令通常在项目的一个专门的构建目录中执行,以便将构建文件与源代码分离。这种方法被称为“out-of-source”构建,有助于保持源代码目录的整洁。让我们通过一个步骤来了解如何执行这一过程。

      按照以下步骤进行构建:

      创建一个构建目录

      1. 创建一个构建目录:在项目的根目录中创建一个新目录,用于存放构建产生的所有文件。

        mkdir build
        cd build
        

      运行 CMake

      1. 运行 CMake:使用 cmake .. 从构建目录中生成 Makefile。这里的 .. 指的是包含 CMakeLists.txt 的父目录。

        cmake ..
        

      编译项目

      1. 编译项目:使用 make -j 命令来编译项目。-j 参数后可以指定数字,表示同时运行的编译作业数。如果不指定数字,make 将尝试同时运行尽可能多的作业,以加快编译速度。

        make -j
        

      假设你的项目结构如下:

      /MyCMakeProject
      |-- CMakeLists.txt
      |-- main.cpp
      

      在 MyCMakeProject 目录中,执行以下命令:

      mkdir build
      cd build
      cmake ..
      make -j
      

      这将在 build 目录中编译项目。编译完成后,你可以在 build 目录中找到生成的可执行文件。

      总结

      通过在一个独立的构建目录中使用 cmake .. 和 make -j 命令,可以有效地构建 CMake 项目,同时保持源代码目录的清洁。这种方法提供了更灵活的构建选项,并允许在同一源代码基础上进行多种不同配置的构建。