cmake基础用法

对于少数量的源文件:

cmake_minimum_required (VERSION 3.0)    //指定cmake最小版本
project (main)      //工程名字
add_executable(main a.cpp b.cpp c.cpp)      //用a.cpp b.cpp c.cpp生成.elf的文件名字为main

对于多数量的源文件:

  • 使用 aux_source_directory(dir name) 把dir目录下的所有源文件保存在 name变量里

cmake_minimum_required (VERSION 3.0)    //指定cmake最小版本
project (main)      //工程名字
aux_source_directory(. SRC_LIST)    //把当前目录下的所有源文件保存在 SRC_LIST变量里
add_executable(main ${SRC_LIST})
  • 使用set( name dir1 dir2 ...) 把指定文件保存在name里

    cmake_minimum_required (VERSION 3.0)    //指定cmake最小版本
    project (main)      //工程名字
    set( SRC_LIST ./a.cpp ./b.cpp ./c.cpp)  
    add_executable(main ${SRC_LIST})

对于不同目录下的源文件:

  • 使用 include_directories (dir1 dir2) 头文件搜索路径

cmake_minimum_required (VERSION 3.0)    //指定cmake最小版本
project (main)      //工程名字
include_directories(test1)  //在test1目录下搜索头文件
aux_source_directory(test1 SRC_LIST)    //把test1目录下的所有源文件保存在 SRC_LIST变量里
add_executable(main ${SRC_LIST})

对于多个目录下的多个CMakeLists.txt文件

根目录下的CMakeLists.txt文件

cmake_minimum_required (VERSION 3.0)    //指定cmake最小版本
project (main)      //工程名字
add_subdirectory (son)  //在son目录下搜索CMakeLists.txt文件

son目录下的CMakeLists.txt文件

aux_source_directory (. SRC_LIST)   //把当前目录下的所有源文件保存在SRC_LIST变量里
include_directories (../include)    //头文件搜索路径
add_executable (main ${SRC_LIST})   //生成elf文件
set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)  //把elf文件保存在指定目录

其中:

  • EXECUTABLE_OUTPUT_PATH :目标二进制可执行文件的存放位置

  • PROJECT_SOURCE_DIR:工程的根目录

    则 set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)是把elf文件保存在根目录下的bin文件中

你可能感兴趣的:(Linux操作系统,cmake)