CMake简单使用

CMake 简介

CMake 是一个跨平台的构建系统,可以生成本地构建工具(如 Makefile 或 Visual Studio 项目)的配置文件。

基本用法

CMake 最小配置

创建一个 CMakeLists.txt 文件:

cmake_minimum_required(VERSION 3.10)

project(MyProject)

add_executable(MyExecutable main.cpp)
  • cmake_minimum_required:指定最低版本要求。
  • project:定义项目名称。
  • add_executable:添加可执行目标。
生成和构建
mkdir build
cd build
cmake ..
make
  • cmake ..:在 build 目录中生成构建文件。
  • make:构建项目。

添加多个源文件

set(SOURCES main.cpp file1.cpp file2.cpp)
add_executable(MyExecutable ${SOURCES})

包含头文件路径

include_directories(/path/to/include)

链接库

target_link_libraries(MyExecutable m)
  • m:链接数学库,相当于 -lm

使用外部库

查找库
find_package(SomeLibrary REQUIRED)
include_directories(${SomeLibrary_INCLUDE_DIRS})
target_link_libraries(MyExecutable ${SomeLibrary_LIBRARIES})

设置编译选项

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -g")

创建库

add_library(MyLibrary STATIC file1.cpp file2.cpp)
  • STATIC:静态库。
  • SHARED:动态库。

使用配置选项

option(USE_FEATURE "Use special feature" ON)

if(USE_FEATURE)
    add_definitions(-DUSE_FEATURE)
endif()

示例完整 CMakeLists.txt

cmake_minimum_required(VERSION 3.10)

project(MyProject)

set(SOURCES main.cpp file1.cpp file2.cpp)

add_executable(MyExecutable ${SOURCES})

include_directories(/path/to/include)

find_package(SomeLibrary REQUIRED)
include_directories(${SomeLibrary_INCLUDE_DIRS})
target_link_libraries(MyExecutable ${SomeLibrary_LIBRARIES})

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -g")

option(USE_FEATURE "Use special feature" ON)

if(USE_FEATURE)
    add_definitions(-DUSE_FEATURE)
endif()

总结

CMake 提供了灵活的项目配置和管理方式,可以方便地控制编译过程、管理依赖性和跨平台构建,是现代 C++ 项目的常用工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值