单文件编译
添加版本号
project(xxx VERSION 0.1.0)
指定C++版本
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
多文件编译
- 将所有头文件放到Include文件夹下,源文件放到Source文件夹下
- 用include_directories() 包含头文件
- 利用aux_source_directory() 引用所有的源文件,并保存到一个变量中(这个函数可以递归找子文件夹下的源文件吗?追加源文件呢?)
例子
# 文件夹结构长这样
# --Include
# |--xxx.h
# --Source
# |--xxx.cpp
# --main.cpp
cmake_minimum_required(VERSION 3.20)
project(TinyMS VERSION 0.1.0)
include_directories(./Include) # 包含头文件
aux_source_directory(./Source SOURCE_FILE) # 搜索source下的所有源文件
aux_source_directory(./ SOURCE_FILE) # 搜索main.cpp
add_executable(TinyMS ${SOURCE_FILE}) # 编译项目
编译成库
-
所有库文件都放到一个文件夹里面
-
这个库文件夹包含一个新的CMakeLists.txt文件
add_library(库名 xx.cpp)
-
在顶级CMakeLists.txt中添加库
add_subdirectory(库名) add_executable(xxx xx.cpp) # 如果是动态库就把PUBLIC改成SHARE target_link_libraries(xxx PUBLIC 库名)
在cmake中创建宏定义
引用第三方库
新建一个ThirdPart文件夹,把所有的`
标签:CMake,--,xxx,源文件,source,文件夹,cpp,使用指南 From: https://www.cnblogs.com/destinyzk/p/16661651.html