cmake笔记

这篇博客详细记录了CMake的相关知识,包括cMakelists的主要函数、CMake变量的设置方式及其三种方法、变量列表、如何进行递归安装、buildroot的概念及用途,以及常用的编译标志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cmake笔记

cMakelists 主要函数

名称描述
cmake_minimum_required最低版本声明
project项目名称
add_executable设置可执行程序
add_library设置库
add_subdirectory添加子目录
link_directories指定路径
target_link_libraries指定库
target_compile_definitions宏定义
INTERFACE:这些定义对于目标的所有用户都是可见的。
PUBLIC:这些定义对于目标的所有用户和目标的所有依赖项都是可见的。
PRIVATE:这些定义仅对于目标内部是可见的,对于目标的所有用户和依赖项都是不可见的
add_compile_options编译选型
set设置变量值
install安装命令
message打印
add_dependencies使顶级<目标>依赖于其他顶级目标
顶级目标是由add_executable()、add_library()或add_custom_target()命令创建的
get_target_property
SET_TARGET_PROPERTIES

cmake变量设置方式

三种方式设置:

名称描述
CMakelists.txt1. target_compile_definitions()
2. set (CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -DEX2”)
3.add_compile_options()
cmake例如:传递变量-DCMAKE_CXX_FLAGS=-O3
-D表示设置变量
-U表示取消变量

cmake变量列表

名称描述
CMAKE_BUILD_TYPErelease 和 debug
CMAKE_C_COMPILERC编译器
CMAKE_CXX_COMPILERC++编译器
CMAKE_C_FLAGSC编译器标志
CMAKE_CXX_FLAGSC++编译器标志
CMAKE_LINKER_FLAGS设置链接器标志
CMAKE_EXE_LINKER_FLAGS链接可执行文件时使用的链接器选项
CMAKE_INSTALL_PREFIX指定安装的根目录
CMAKE_PREFIX_PATH指定要搜索的库文件和头文件的目录
CMAKE_MODULE_PATH指定要搜索的CMake模块的目录
CMAKE_VERBOSE_MAKEFILE设置为ON时,会在编译过程中打印所有命令
CMAKE_C_FLAGS = 
CMAKE_C_FLAGS_DEBUG = -g
CMAKE_C_FLAGS_MINSIZEREL = -Os -DNDEBUG
CMAKE_C_FLAGS_RELEASE = -O3 -DNDEBUG
CMAKE_C_FLAGS_RELWITHDEBINFO = -O2 -g -DNDEBUG

CMAKE_CXX_FLAGS = 
CMAKE_CXX_FLAGS_DEBUG = -g
CMAKE_CXX_FLAGS_MINSIZEREL = -Os -DNDEBUG
CMAKE_CXX_FLAGS_RELEASE = -O3 -DNDEBUG
CMAKE_CXX_FLAGS_RELWITHDEBINFO = -O2 -g -DNDEBUG

递归install

解决安装中文件夹、文件不能同时安装的问题:

#!/bin/sh
# Program to use the command install recursivly in a folder

magic_func() {
    echo "entering ${1}"
    echo "target $2"

    for file in $1; do
        if [ -f "$file" ]; then
            echo "file : $file"
            echo "installing into $2/$file"
            install -D $file $2/$file

        elif [ -d "$file" ]; then
            echo "directory : $file"
            magic_func "$file/*" "$2"

        else
            echo "not recognized : $file"

        fi
        done
}

magic_func "$1" "$2"

buildroot

buildroot官网

常用标志

cmake:设置编译选项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值