CMake是一个跨平台的自动化构建工具,使用CMakeLists.txt文件来描述构建过程,生成标准的构建文件,如UNIX下Makefile。

1、使用流程

1)编写CMakeLists.txt。

2)执行"cmake path"命令,其中path是CMakeLists.txt所在的目录。

3)在生成的Makefile文件所在的目录,执行"make"命令。

2、命令不区分大小写,参数和变量区分大小写。

3、设置项目名称。

project(xworkbench) # Set the name of the project.

4、设置项目所需的CMake最小版本。

cmake_minimum_required(VERSION 3.11) # Require a minimum version of cmake.

5、

add_subdirectory(src) # Add a subdirectory to the build.

6、利用源文件生成可执行文件。

add_executable(main ${SRC_DIR})

  

7、

aux_source_directory()

8、

option

add_library 则告诉生成一个库文件。

set赋值

9、

include_directories() # Add include directories to the build.

10、

link_directories() # Add directories in which the linker will look for libraries.

11、  

file(GLOB TEST_SRC ./*.cpp) # File manipulation command.
target_link_libraries(workbench ) # Specify libraries or flags to use when linking a given target and/or its dependents.

  

参考链接:

https://cmake.org/cmake-tutorial/

https://www.ibm.com/developerworks/cn/linux/l-cn-cmake/index.html

C++ cmake的更多相关文章

  1. 使用cmake自动构建工程

    公司引擎是用cmake根据目标平台来构建工程的,刚接触的时候深深体会到cmake的方便:如果目标平台是windows,它可以帮你自动构建出vs工程:如果是安卓,自动构建出eclipse工程,如果是IO ...

  2. CMake

    使用CMake编译跨平台静态库 http://www.tuicool.com/articles/3uu2Yj cmake命令 安装.用法简介 https://fukun.org/archives/04 ...

  3. CMake学习笔记

    C++开发者必备技能CMake  先简单介绍一下,CMake是一个跨平台的编译工具,它可以根据不用的平台,不同的编译环境,生成不同的MakeFile,从而控制编译的过程. 使用CMake的步骤: 1. ...

  4. VS 2013编译64位版本QT 4.8.6及使用cmake为依赖QT生成VS项目时Could NOT find Qt4

    对于一些已经解决的问题,本博客不再讨论.只将本人遇到的问题做简单的说明. 一.VS 2013编译64位版本QT 4.8.6 QT项目官网中,对于QT4,其只提供了windows X86的版本,并且支持 ...

  5. cmake cannot find package

    cmake 找不到package,如 find_package (OpenMesh REQUIRED) 出现错误 在项目的文件夹中找到 FindOpenMesh.cmake 文件,将其所在路径添加到 ...

  6. Cmake的交叉编译

    http://www.cmake.org/Wiki/CMake_Cross_Compiling

  7. CMake命令/函数汇总(翻译自官方手册)

    查看官方文档 cmake命令 选项 CMake变量 CMake命令汇总 / add_custom_command add_custom_target/add_definitions/add_depen ...

  8. 《CMake实践》笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE

    <CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...

  9. 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX

    <CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...

  10. 《CMake实践》笔记三:构建静态库(.a) 与 动态库(.so) 及 如何使用外部共享库和头文件

    <CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...

随机推荐

  1. 【性能优化之道】每秒上万并发下的Spring Cloud参数优化实战

    一.写在前面   相信不少朋友都在自己公司使用Spring Cloud框架来构建微服务架构,毕竟现在这是非常火的一门技术. 如果只是用户量很少的传统IT系统,使用Spring Cloud可能还暴露不出 ...

  2. C++STL模板库关联容器之set/multiset

    目录 一丶关联容器简介.set/multiset 二丶演示代码. 一丶关联容器简介.set/multiset 我们的序列容器,底层都是线性表构成的. 比如 vector list deque. 关联容 ...

  3. 如何正确使用Java泛型

    前言 Java 1.5之前是没有泛型的,以前从集合中读取每个对象都必须先进行转换,如果不小心存入集合中对象类型是错的,运行过程中转换处理会报错.有了泛型之后编译器会自动帮助转换,使程序更加安全,但是要 ...

  4. 【Angular专题】——(2)【译】Angular中的ForwardRef

    原文地址:https://blog.thoughtram.io/angular/2015/09/03/forward-references-in-angular-2.html 作者:Christoph ...

  5. python-操作文件和目录

    操作文件和目录 为文件和目的操作经常用到os模块和shutil模块. 常用方法: 获取当前脚本工作的目录路径:os.getcwd(),返回的是str类型. 返回指定目录下的所有文件和目录名:os.li ...

  6. C#实现窗体全屏

    方法一:设置窗体属性 //程序启动路径,与生成程序的exe文件在同一目录下 public String exePath = Application.StartupPath; //定义窗体宽高 ; ; ...

  7. 解决基于IIS的.net core HttpWebRequest 连接特别慢

    用的是HttpWebRequest 连接特别慢,查找原因发现 : 由 HttpWebRequest. Proxy  代理的原因导致 . 其实请求1秒就完成了,那15秒是用来等待默认proxy超时的…… ...

  8. DOM编程以及domReady加载的几种方式

    1,关于DOM编程       DOM编程主要是对dom树节点进行操作,所以你必须掌握基本的节点类型,如何去获取节点名字以及值(这些相关知识你可以去网上查,这里推荐一个慕课学习网站->https ...

  9. iOS----------使用cocoapods遇到的问题

    -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad ...

  10. AngularJS学习之旅—AngularJS 过滤器(七)

    1.AngularJS 过滤器 过滤器可以使用一个管道字符(|)添加到表达式和指令中. AngularJS 过滤器可用于转换数据: 过滤器 描述 currency 格式化数字为货币格式. filter ...