Cmake 命令手册

学习开源项目时候遇到的cmake命令,做一些记录,命令的功能解释得相对单一,遇到不一样的用法再作更新。


  1. add_compile_options(-idirafter)
      添加编译选项 比如-std=c++11 针对所有编译器
      set(CMAKE_CXX_FLAGS -O3 -fPIC) 只针对c++编译器
      set(CMAKE_C_FLAGS -O3 -fPIC) 只针对c编译器
  2. include_directories()
      表示引入头文件搜索路径
  3. find_package(Eigen3 REQUIRED) find_package(Qt5 COMPONENTS Core REQUIRED)
      批量引入库文件和头文件
        REQUIRED:必须找到该库,找不到就报错
        COMPONENTS:从库中找子库(模块)xx,比如COMPONENTS Core 表示找到子模块Core
  4. link_directories()
      将头文件目录引入到当前工程——添加.lib库文件的搜索路径
    link_libraries()
      表示将具体的库文件引入到当前工程中,所填入的路径必须是全路径
    target_link_libraries(qt_test Qt5::Core )
      连接Core.dll到qt_test.exe
    target_include_directories()
      将头文件目录针对性的引入到目标子工程(当前工程一般可以包含多个子工程)
  5. set()
      设置普通变量 set( … [PARENT_SCOPE])
      设置缓存条目 set( … CACHE [FORCE])
      设置环境变量 set(ENV{} [])
  6. ExternalProject_Add()
      使用ExternalProject来管理项目的第三方依赖,包括配置、下载等,注意需要先带入插件include(ExternalProject)
  7. add_subdirectory (source_dir [binary_dir] [EXCLUDE_FROM_ALL])
      添加一个子目录并构建该子目录
        source_dir 该参数指定一个子目录,子目录下应该包含CMakeLists.txt文件和代码文件
        binary_dir 该参数指定一个目录,用于存放输出文件
        EXCLUDE_FROM_ALL 当指定了该参数,则子目录下的目标不会被父目录下的目标文件包含进去,父目录的CMakeLists.txt不会构建子目录的目标文件,必须在子目录下显式去构建
  8. install()
      命令为项目生成一系列的安装规则
        安装目标文件 install(TARGETS <target_name> [RUNTIME | LIBRARY | ARCHIVE] DESTINATION <target_dir> … )
        安装普通文件 install(<FILES|PROGRAMS> files…DESTINATION < dir> …)
        安装非目标文件的可执行程序,比如脚本类 INSTALL(PROGRAMS files… DESTINATION < dir> … )
        安装目录 install(DIRECTORY <target_name> DESTINATION <target_name> …)
  9. add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [source1] [source2 ...])
      使用指定的源文件向项目(project)中添加库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值