# cmake-study **Repository Path**: sworker/cmake-study ## Basic Information - **Project Name**: cmake-study - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-14 - **Last Updated**: 2023-12-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 用于学习cmake的相关操作 > 项目是基于cmake官网的示例文档进行操作,此处记录一些常用操作 # 项目创建步骤 1. 在项目文件的目录下创建名为CMakeLists.txt的文件,文件名不能错,包括大小写 2. 编辑CMakeLists.txt文件 3. 创建编译目录,此处创建build文件夹 4. 进入build文件夹,执行cmake命令,生成makefile文件 5. 执行make命令,编译项目。或者使用更常用的cmake --build .进行项目编译,该编译指令不区分是否生成makefile文件。 # CMakeLists.txt最基本组成 1. 指定cmake最低版本 > cmake_minimum_required(VERSION 3.10) 2. 指定cmake项目名称 > project(cmake_test) 3. 指定cmake源文件目录 > add_executable(cmake_test main.cpp) > cmake -G 可以指定编译使用的编译器,例如Windows平台下使用:cmake -G "MinGW Makefiles" ..表示使用MinGW编译器进行编译 > 想要一直使用“MinGW Makefiles”作为默认的编译器,可以在环境变量中创建一个新的变量“CMAKE_GENERATOR”,其值为MinGW Makefiles ## 增加多个文件 > 多个源文件中间使用空格进行分隔,头文件可以不写入 ``` add_executable(cmake_test main.cpp main.h) ``` ## 项目文件名 > CMakeLists.txt中,在配置项目文件名后,需要用到的地方都可以使用${PROJECT_NAME}来代替项目文件名 ## 增加包含目录 > 使用target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR})。 > 其中,PUBLIC表示public,表示该目录为公共目录,在当前目录下,其他目录都可以使用该目录下的头文件 ## 设置使用标准 > set(CMAKE_CXX_STANDARD 11) > set(CMAKE_CXX_STANDARD_REQUIRED ON) 或者 set(CMAKE_CXX_EXTENSIONS True) ## 设置配置文件 > configure_file(cmake_test.h.in cmake_test.h) 1. 在CMakeLists.txt中,使用configure_file()命令,将cmake_test.h.in文件复制到cmake_test.h文件中 2. 配置cmake_test.h.in文件,其变量名可以根据CMakeLists.txt中变量名进行设置,或者使用@变量@的方式来包含 3. 在源文件中包含cmake_test.h文件 4. 可以正常调用cmake_test.h文件中的变量