首页 > 其他分享 >cmake命令

cmake命令

时间:2023-09-22 17:35:22浏览次数:34  
标签:set CMAKE CMake 命令 add 构建 cmake target

CMake是一个跨平台的开源构建工具,用于管理C++项目的构建过程。

注意CMake命令语法不区分大小写

  1. cmake_minimum_required:指定项目所需的CMake的最低版本。

    cmake_minimum_required(VERSION <version>)
    
  2. project:定义项目的名称、版本和描述信息。

    project(<project_name> VERSION <version> DESCRIPTION <description>)
    
  3. add_executable:添加一个可执行文件的构建目标。

    add_executable(<target_name> <source_files>)
    
  4. add_library:添加一个库的构建目标(静态库或共享库)。

    add_library(<target_name> <library_type> <source_files>)
    
  5. target_link_libraries:将目标与所需的库链接。

    target_link_libraries(<target_name> <library_name>)
    
  6. target_include_directories:为目标设置包含路径。

    target_include_directories(<target_name> PRIVATE <include_directories>)
    
  7. target_compile_definitions:为目标设置编译定义。

    target_compile_definitions(<target_name> PRIVATE <definitions>)
    
  8. add_subdirectory:添加一个子目录到构建。

    add_subdirectory(<subdirectory>)
    
  9. find_package:寻找并加载其他软件包或库。

    find_package(<package_name> <version>)
    
  10. set:设置变量的值。

    set(<variable_name> <value>)
    
  11. if:条件判断。

    if(<condition>)
        # commands
    endif()
    
  12. foreach:循环遍历列表。

    foreach(<variable> <list>)
        # commands
    endforeach()
    
  13. add_definitions:添加编译定义到项目中。

    add_definitions(-D<definition>)
    
  14. message:输出消息到CMake的输出。

    message(<message>)
    
  15. set_target_properties:设置目标的属性,例如输出路径。

    set_target_properties(<target_name> PROPERTIES <property_name> <value>)
    
  16. setadd_compile_options:设置CMake编译选项

    set也可以用来设置编译器选项,但是设置的CMAKE_CXX_FLAGS仅限于c/c++编译器使用

    更推荐使用add_compile_options设置编译器

    # 举例
    set(CMAKE_CXX_FLAGS "-Wall -Wextra")
    add_compile_options(-Wall -Wextra)
    
  17. include:包含外部的CMake脚本文件

    include(<filename>)
    
  18. file(GLOB...):通过通配符模式匹配来获取一组文件

    推荐使用set()命令管理项目的源文件列表

    # 示例:匹配当前目录下的所有 .cpp 和 .h 文件,并将它们保存在 SOURCE_FILES 变量中。
    file(GLOB SOURCE_FILES "*.cpp" "*.h")
    
  19. MATCHES:字符串操作符,用于检查一个字符串是否匹配一个正则表达式

    # 设置了一个字符串 my_string,然后使用 MATCHES 操作符判断它是否包含子字符串 "CMake"。
    set(my_string "Hello, CMake!")
    if(my_string MATCHES "CMake")
        message("String contains 'CMake'")
    
  20. $ENV{}:该命令用来获取环境变量的值

    message("Value of HOME: $ENV{HOME}")
    
  21. install:配置安装规则

    # 用于配置安装规则,以便在构建项目后将生成的文件复制到指定的目标位置。
    install(TARGETS <target_name> DESTINATION <destination>)	#<target_name> 是要安装的构建目标(可执行文件、共享库等),而 <destination> 是目标安装路径。
    install(FILE <file_path> DESTINATION <destination>)	#将一个文件从构建目录复制到指定的安装目标位置
    
  22. CMake中定义好的一些变量

    CMAKE_SOURCE_DIR: 项目的顶级源代码目录路径。
    CMAKE_BINARY_DIR: 构建目录的路径。
    CMAKE_CURRENT_SOURCE_DIR: 当前处理的CMakeLists.txt所在的源代码目录路径。
    CMAKE_CURRENT_BINARY_DIR: 当前处理的CMakeLists.txt所在的构建目录路径。
    CMAKE_INSTALL_PREFIX: 安装目录的路径,你可以使用 -DCMAKE_INSTALL_PREFIX=<path> 选项来指定。
    CMAKE_CXX_COMPILER: C++编译器的路径。
    CMAKE_C_COMPILER: C编译器的路径。
    CMAKE_BUILD_TYPE: 构建类型,如Debug、Release等。
    CMAKE_SYSTEM_NAME: 系统名称,如Linux、Windows等。
    CMAKE_SYSTEM_PROCESSOR: 系统处理器类型
    

标签:set,CMAKE,CMake,命令,add,构建,cmake,target
From: https://www.cnblogs.com/ray93/p/17722977.html

相关文章

  • linux命令创建文件
    Linux命令创建文件 在Linux系统中,有多种命令可以用来创建文件。下面将介绍几个常用的方法。1.使用touch命令创建文件:touch文件名该命令会创建一个空文件,如果文件已存在,则会更新文件的访问和修改时间。2.使用echo命令创建文件:echo"内容">文件名该命令会将指定的内......
  • Linux 运维必备 150 个命令汇总
    本文章盘点了Linux运维必备150个命令,可配合网站使用。定位你需要使用的命令,然后去这个网站查询详细用法即可。地址:https://www.linuxcool.com 线上查询及帮助命令man:全拼manual,用来查看系统中自带的各种参考手册。help:用于显示shell内部命令的帮助......
  • linux基本命令(ls,man,pwd,cd,mkdir,echo,touch,cp,mv,rm,rmdir)
    本章命令一共11个123456lsmanpwdcpmkdirechotouchcpvmrmmkdir    命令的使用1.ls命令作用:列出指定目录下的工作目录,默认当前目录语法:ls[参数][文件目录]参数-a列出所有文件,包括以.开头的隐藏文件参数-d列出目录本身并不包括目录中的文......
  • Apache Log4j Server CVE-2017-5645 反序列化命令执行漏洞
    漏洞描述攻击者可以通过发送一个特别制作的2进制payload,在组件将字节反序列化为对象时,触发并执行构造的payload代码。该漏洞主要是由于在处理ObjectInputStream时,接收函数对于不可靠来源的input没有过滤。可以通过给TcpSocketServer和UdpSocketServer添加可配置的过滤功能以及一......
  • python中,如何优雅的解析和管理命令行参数
    背景我们在编写python程序时,程序中经常会提供多种功能或者模式,在实际使用时根据不同的参数使用不同的功能。那么如何获取命令行传入进来的参数呢?一般方法一般情况下,我们会使用sys模块,如......
  • Nextcloud使用OCC命令重置密码
    Nextcloud使用OCC命令重置密码  一般来说,可以使用管理员账户来修改密码如果出现了忘记了管理员密码这种糟糕的情况,就只能通过OCC命令或修改数据库的方式来解决了。本文介绍较为方便的使用OCC命令重置密码方式。OCC命令的用法occ命令是ownCloud/Nextcloud的命令行界面......
  • windows中实现本地scp命令向服务器远程免密传输文件
     先安装git,官网:https://git-scm.com/  001、打开git,生成本地密钥文件ssh-keygen##然后全部回车  002、查看密钥文件 ......
  • Linux系统添加历史命令操作记录(系统设置)
    Linux系统添加历史命令操作记录原创 浩道 浩道Linux 2023-09-2207:50 发表于广东收录于合集#linux学习320个关注上方浩道Linux,回复资料,即可获取海量Linux、Python、网络通信、网络安全等学习资料!前言大家好,这里是浩道Linux,主要给大家分享Linux、Python、网络通信、......
  • linux 中 find命令 -maxdepth 和 -mindepth 选项
     001、[root@pc1dir001]#lstest01test02ww.txtxx.map[root@pc1dir001]#tree.├──test01│  ├──cc.csv│  └──kk.txt├──test02│  ├──dirxx│  │  └──diryy│  │  ├──rr.ped│  │  └......
  • cmake之解析宏或者函数参数
    本文将介绍cmake如何解析函数或者宏对应的参数列表语法查询打开cmake手册,查询cmake_parse_arguments关键字即可,如下图语法cmake_parse_arguments(<prefix><options><one_value_keywords><multi_value_keywords><args>...)cmake_parse_argum......