CMake使用指南

单文件编译

添加版本号

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文件夹,把所有的`

posted @   Destiny233  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示