【CMake】CMakeLists.txt速查手册

速查命令

cmake -D xx=xx [路径] 外部添加变量

project(xxx) #关联变量 PROJECT_SOURCE_DIR PROJECT_NAME

cmake_minimum_required(VERSION 3.5) #指定cmake 版本

SET(CMAKE_INSTALL_PREFIX <install_path>) #指定install安装路径

aux_source_directory(./ SRC) #获取当前目录下所有.c .cpp .cc

set(CXX  "-CXX -Wall -pthread")
set(CMAKE_CXX_FLAGS ${CXX}) #C/C++相关编译参数

set(变量名 路径) 设置变量

add_definitions(-Dhaha) #添加编译选项 比如宏定义haha

message("sssss") #打印消息

add_subdirectory(子文件夹) #编译子文件,子文件夹中需要有CMakeLists.txt

add_library(utils SHARED/STATIC ${SRC}) #将变量SRC代表的代码编译成动态/静态 库  比如这个生成的就是 libutils.so / libutils.a  lib可以去掉不写

add_executable(utils ${SRC}) #将变量SRC代表的文件编译成二进制文件

target_include_directories(要生成的:库文件名字/二进制名字
											PRIVATE/PUBLIC ../src
) #包含源代码

target_link_libraries(要生成的:库文件名字/二进制名字 链接的库文件名字)

target_link_libraries(main utils) #将utils库,动态链接到main程序

栗子:

编译二进制

cmake_minimum_required(VERSION 3.5)
project(main)

LIST(APPEND CMAKE_CXX_FLAGS "-std=c++11 -O3 -ffast-math -Wall")

aux_source_directory(. SRC)

add_definitions(-DRUNTIME) #添加宏定义RUNTIME

add_executable(main ${SRC})
target_link_libraries(main pthread) #链接多线程库

编译动态库

cmake_minimum_required(VERSION 3.10)

aux_source_directory(. MANAGER_SRC)
add_library(MANAGER SHARED ${MANAGER_SRC})

target_link_libraries(MANAGER
	PRIVATE ../utils)


target_link_libraries(MANAGER pthread) #链接多线程库

!如有错误欢迎指正,持续更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值