手机版
你好,游客 登录 注册
背景:
阅读新闻

Cmake入门教程

[日期:2019-03-28] 来源:Linux社区  作者:Linux [字体: ]

1 什么是CMake?

Cmake是一个编译、构建工具。使用CMakeLists.txt来描述构建过程,可以生成标准的构建文件,如Makefile。一般先编写CMakeLists.txt,然后通过cmake来生成Makefile,最后执行make进行编译。

1.1 cmake安装

​ 在Ubuntu上安装cmake非常简单,执行sudo apt-get install cmake即可。如果想安装最新的cmake版本,就需要自己进行源码编译安装。源码下载路径:https://cmake.org/download。源码编译安装非常简单,这里就不再详细描述了。

1.2 查看cmake版本

cmake安装完成后,执行cmake --version,即可查看cmake的版本号。我的是3.5.1

2 CMake的基本使用流程

  • 编写CMakeLists.txt
  • 执行cmake .;一般在工程根目录下mkdir build;cd build;然后执行cmake ..;这样的目的是为了保证源码不会污染
  • 执行make进行编译

3 CMake简单示例

这里给出一个简单的使用cmake进行构建的工程示例,目录结构如下:

test01
​ ├── build
​ ├── CMakeLists.txt
​ └── main.c

main.c文件如下:

#include <stdio.h>

int main(int argc, char** argv)
{
    printf("hello cmake\n");

    return 0;
}

CMakeLists.txt内容如下:

#设置cmake的最小版本
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
#设置项目名称
project(test01)
#设置源文件
aux_source_directory(. dir_srcs)
#设置可执行程序
add_executable(test01 ${dir_srcs})

我这里mkdir 了build 目录,

cd build

cmake ..

make

最后就会在当前目录下看到生成的test01可执行程序。

接下来,对上例中的CMakeLists.txt的语法进行解释。

  • CMakeLists.txt 的语法比较简单,由命令、注释和空格组成,其中命令是不区分大小写的,符号"#"后面的内容被认为是注释

    Call the cmake_minimum_required() command at the beginning of the top-level CMakeLists.txt file even before calling the project() command. It is important to establish version and policy settings before invoking other commands whose behavior they may affect. See also policy CMP0000.

  • cmake_minimun_required

    格式:cmake_minimum_required(VERSION <min>[...<max>][FATAL_ERROR])

    设置该工程的cmake最低支持版本,注意"VERSION"不能写成小写,否则会报cmake_minimum_required called with unknown argument "version".

  • project

    project(<PROJECT-NAME> [LANGUAGES] [<language-name>...])
    project(<PROJECT-NAME>
            [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
            [DESCRIPTION <project-description-string>]
            [HOMEPAGE_URL <url-string>]
            [LANGUAGES <language-name>...])
  • aux_source_directory

    aux_source_directory(<dir> <variable>)

    Find all source files in a directory.Collects the names of all the source files in the specified directory and stores the list in the

  • add_executable

    add_executable(<name> [WIN32] [MACOSX_BUNDLE]
                   [EXCLUDE_FROM_ALL]
                   [source1] [source2 ...])

    将源文件编译成可执行程序,可执行程序的名称由

补充:

cmake的命令包含 scripting commands,project commands,ctest commands,deprecated commands。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-03/157760.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款