最近研究了下cmake,总结了一些常用命令,方便以后快速查找。

  1. project(projectname [CXX] [C] [Java]):

    1. 设置工程名。
  2. set(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]]):
    1. 设置变量VAR为指定值。
    2. 例子:set(CXX_FLAGS -g -Wall)。将变量CXX_FLAGS设置为"-g;-Wall"。其中以分号分隔。
  3. include_directories([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...):
    1. 将dir1, dir2作为include搜索路径。
  4. find_package( [major.minor] [QUIET] [NO_MODULE] [[REQUIRED|COMPONENTS] [components...]]):
    1. 暂时不是很理解。
    2. 例子:find_package(Threads REQUIRED)
  5. add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL]):
    1. source_dir下的CmakeLists.txt也会被处理。
  6. 编译链接动作:
    1. add_library(libname [SHARED | STATIC | MODULE] [EXCLUDE_FROM_ALL] source1 source2 ... sourceN):

      1. 使用指定源文件生成库文件。该库文件会存储于CMAKE_ARCHIVE_OUTPUT_DIRECTORY或者CMAKE_LIBRARY_OUTPUT_DIRECTORY指定的目录。
    2. add_executable(exename [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] source1 source2 ... sourceN):
      1. 使用指定源文件生成可执行文件。会存储于CMAKE_RUNTIME_OUTPUT_DIRECTORY指定的位置。
    3. target_link_libraries(target library1 <debug | optimized> library2 ...):
      1. 将库文件链接到目标文件。
  7. 内置变量:
    1. 基础目录:

      1. PROJECT_SOURCE_DIR:执行cmake的目录。比如我在/mnt/d/work/cpp/NanoSTL/build目录下执行cmake ..,虽然根CMakelists.txt位于/mnt/d/work/cpp/NanoSTL,PROJECT_SOURCE_DIR的值还是/mnt/d/work/cpp/NanoSTL/build。
      2. PROJECT_BINARY_DIR:工程根目录。比如根CMakelists.txt位于/mnt/d/work/cpp/NanoSTL,那么该变量就是/mnt/d/work/cpp/NanoSTL。
    2. CMAKE_CXX_FLAGS:编译器选项。
    3. 输出目录:
      1. CMAKE_ARCHIVE_OUTPUT_DIRECTORY:编译后.a文件存储位置。
      2. CMAKE_LIBRARY_OUTPUT_DIRECTORY:动态链接文件.so存储位置。
      3. CMAKE_RUNTIME_OUTPUT_DIRECTORY:可执行文件存储位置。
  8. 常用链接:
    1. cmake官方文档

cmake常用命令总结的更多相关文章

  1. CMake学习笔记四-CMake常用命令

    CMake常用命令 PROJECT PROJECT(projectname [CXX] [C] [Java]) 指定工程名称,并可指定工程支持的语言.支持语言列表可忽略,默认支持所有语言 SET ...

  2. CMake 常用命令

    cmake是现在主流的用于多平台C++构建系统,本文用来记录cmake的一些常用命令的索引,加上一些自己理解,理解有误的话,欢迎大家指出. 常用路径 CMAKE_SOURCE_DIR: 顶级cmake ...

  3. cmake 常用变量和常用环境变量查表手册---整理 .

    一,cmake 变量引用的方式: 前面我们已经提到了,使用${}进行变量的引用.在 IF 等语句中,是直接使用变量名而不通过${}取值 二,cmake 自定义变量的方式: 主要有隐式定义和显式定义两种 ...

  4. cmake 常用变量和常用环境变量查表手册

    cmake 常用变量和常用环境变量查表手册 一,cmake 变量引用的方式: 前面我们已经提到了,使用${}进行变量的引用.在 IF 等语句中,是直接使用变量名而不通过${}取值 二,cmake 自定 ...

  5. cmake常用工程示例大集合

    1 简单的可执行文件生成工程 1.1 源文件   main.cpp #include <stdio.h> int main(int argc, char *argv[]) { printf ...

  6. ROS 的一些常用命令行功能

    1.安装并添加源sudo gedit /etc/apt/sources.list更新下sudo apt-get update添加 sources.list,如sudo sh -c '. /etc/ls ...

  7. Ubuntu常用命令及git常用命令

    1. CMakeLists.txt中指定OpenCV路径 set(OPENCV_DIR /***/***/opencv-2.4.9) 2. cmake工程编译安装 mkdir build cd bui ...

  8. Linux 常用命令(持续补充)

    常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...

  9. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

随机推荐

  1. python线程条件变量Condition(31)

    对于线程与线程之间的交互我们在前面的文章已经介绍了 python 互斥锁Lock / python事件Event , 今天继续介绍一种线程交互方式 – 线程条件变量Condition. 一.线程条件变 ...

  2. linux目录相关操作

    mkdir:新建目录 mkdir [-mp] 目录名称 -m:配置文件权限,直接设置,不需要看默认权限(umask) -p:递归创建目录 rmdir:删除空目录 rmdir [-p] 目录名称 -p: ...

  3. mysql的事物,外键,与常用引擎

    ### part1 时间类型 date YYYY-MM-DD 年月日 (出现日期) time HH:MM:SS 时分秒 (竞赛时间) year YYYY 年份值 (红酒年份 82年矿泉水) datet ...

  4. 二叉查找树的平衡(DSW算法)

    树适合于表示某些领域的层次结构(比如Linux的文件目录结构),使用树进行查找比使用链表快的多,理想情况下树的查找复杂度O(log(N)),而链表为O(N),但理想情况指的是什么情况呢?一般指树是完全 ...

  5. 【Android - IPC】之Messenger简介

    参考资料: 1.<Android开发艺术探索>第二章2.4.3 2.[Messenger完全解析] 1.Messenger概述 Messenger,译为“信使”,是Android中一种基于 ...

  6. Xtrabackup 介绍

    目录 概念 备份方式 xtrabackup 特点 通信方式 备份过程 扩展理解 xtrabackup 如何实现增量备份 概念 Xtrabackup是由Percona开发的一个开源软件,可实现对Inno ...

  7. 转:linux 安装 Elasticsearch5.6.x 详细步骤以及问题解决方案

    在网上有很多那种ES步骤和问题的解决 方案的,不过没有一个详细的整合,和问题的梳理:我就想着闲暇之余,来记录一下自己安装的过程以及碰到的问题和心得:有什么不对的和问题希望及时拍砖. 第一步:环境 li ...

  8. 转:URL,URLConnection,HttPURLConnection的使用

    URLConnection与HttPURLConnection都是抽象类,无法直接实例化对象.其对象主要通过URL的openconnection方法获得. 值得注意的是:1.openConnectio ...

  9. WebSSH画龙点睛之lrzsz上传下载文件

    本篇文章没有太多的源码,主要讲一下实现思路和技术原理 当使用Xshell或者SecureCRT终端工具时,我的所有文件传输工作都是通过lrzsz来完成的,主要是因为其简单方便,不需要额外打开sftp之 ...

  10. 配置React Native的开发环境

    本文转载自:http://mp.weixin.qq.com/s?__biz=MzIxNjEzNjUzOQ==&mid=402020148&idx=2&sn=ccad14a919 ...