首页 > 其他分享 >CMake常用变量和命令

CMake常用变量和命令

时间:2023-03-16 16:46:32浏览次数:46  
标签:常用 CMAKE 变量 编译 add 设置 CMake name

预定义变量

  • PROJECT_NAME:通过project()指定的项目名称

  • PROJECT_SOURCE_DIR:工程的目录

  • PROJECT_BINARY_DIR执行cmake命令的目录

  • CMAKE_CURRENT_SOURCE_DIR: 当前 CMakeLists.txt 文件所在目录

  • CMAKE_CURRENT_BINARY_DIR : 编译目录,可使用 add_subdirectory 来修改

  • EXECUTABLE_OUTPUT_PATH : 二进制可执行文件 输出位置

  • LIBRARY_OUTPUT_PATH : 文件输出位置

  • BUILD_SHARED_LIBS : 默认的库编译方式 ( sharedstatic ) ,默认为 static

  • CMAKE_C_FLAGS : 设置 C 编译器

  • CMAKE_CXX_FLAGS : 设置 C++ 编译器

  • CMAKE_CXX_FLAGS_DEBUG : 设置编译类型为 Debug 时的编译选项

  • CMAKE_CXX_FLAGS_RELEASE : 设置编译类型为 Release 时的编译选项

  • CMAKE_GENERATOR : 编译器名称

  • CMAKE_COMMAND : CMake 可执行文件本身的全路径

  • CMAKE_BUILD_TYPE : 工程编译生成的版本, Debug / Release

命令

  • 设置项目名称 project
    project(name)

name: 项目名

note:命令执行完将 预定义变量 PROJECT_NAME 设置为 name

  • 设置变量(包括预定义变量set
set(<variable> <value>... [PARENT_SCOPE]) #设置普通变量
 
set(<variable> <value>... CACHE <type> <docstring> [FORCE]) #设置缓存条目
 
set(ENV{<variable>} [<value>]) #设置环境变量
  • 添加目录 add_subdirectory
    add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])

source_dir:拥有CMakeLists.txt的子目录

命令执行将会跳到子目录执行里层CMakeLists.txt

  • 设置生成程序 add_executable
    add_executable(<name> [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] [source1] [source2 ...])

name可执行程序名
[WIN32]程序运行的平台
source构建程序的源文件

  • 生成链接库 add_library
    add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [<source>...])

name库名
[STATIC | SHARED | MODULE]生成库的类型
source构建库的源文件

标签:常用,CMAKE,变量,编译,add,设置,CMake,name
From: https://www.cnblogs.com/lsq47/p/17222605.html

相关文章

  • 【并发编程十】c++线程同步——条件变量(condition_variable)
     【并发编程十】c++线程同步——条件变量(condition_variable)一、互斥二、条件变量1、为何要引入条件变量?2、不使用条件变量3、使用条件变量3.1、互斥锁有什......
  • Python中列表去重常用的3种方法!
    在Python中,列表去重的方法有很多种,其中比较常用的方法有3种:1、利用字典的【fromkeys()】和【keys()】方法去重;2、集合的可迭代方法;3、用for循环。这3种方法希望大家可......
  • JSON的常用方法
    1、JSON.parse()JSON.parse()可以将JSON格式的字符串解析或成JS中的对应值       2、JSON.stringify() JSON.stringify()可以将JS的基本数据类型、对......
  • Redis常用命令
    redis数据库一、概述:redis数据库是一个内存数据库,基于内存进行数据存储的,redis数据库访问速度特别快。因此,redis通常被用于缓存系统、存储大量活跃数据,可以极大地提......
  • 常用linux命令
    ls:列出当前目录下的文件和子目录cd:切换当前工作目录pwd:显示当前工作目录的路径mkdir:创建新目录rmdir:删除空目录touch:创建新文件或更新现有文件的时间戳cp:复制文件或......
  • commons-io的Java文件处理常用方法
    Java文件处理常用方法归纳整理一些常用的处理文件的方法JavaApacheFileUtilsMaven依赖引入<dependency><groupId>commons-io</groupId><artif......
  • 103python类函数、成员函数、静态函数、类变量、成员变量、及其unittest前后置
    复习巩固下:1、python中类函数、成员函数、静态函数、类变量、成员变量​ 在Python中,类函数、成员函数和静态函数都是类的函数,它们的不同之处在于它们的作用域和调用方......
  • 类加载器常用方法
    publicclassClassLoaderDemo{publicstaticvoidmain(String[]args)throwsIOException{//staticgetSystemClassLoader():获取系统类加载器......
  • 04常用告警规则
    1.cpu告警规则groups:-name:hostStatsAlertrules:-alert:hostCpuUsageAlert#正则匹配job中的node_exporter值,这里.匹配了单个数字expr:(1-(avg(irate......
  • CSS常用样式汇总
    1、清除浮动<div class="parent clearfix">    <div class="left child">left</div>    <div class="right child">right</div>.clearfix:after { ......