Cmake 基础

1. gcc、make和cmake

在学习CMake之前,我们需要了解几个词:gcc, make, cmake

  • gcc(GNU Compiler Collection)将源文件编译(Compile)成可执行文件或者库文件;
  • 而当需要编译的东西很多时,需要说明先编译什么,后编译什么,这个过程称为构建(Build)。常用的工具是make,对应的定义构建过程的文件为Makefile
  • 而编写Makefile对于大型项目又比较复杂,通过CMake就可以使用更加简洁的语法定义构建的流程,CMake定义构建过程的文件为CMakeLists.txt

它们的大致关系如下图:

img

2. cmake使用流程

软件是一个大的项目,这个项目是基于库和可执行文件组成的,而库和可执行文件通常需要使用源码进行构建。Cmake可以对这个项目进行组织,已经成为源码构建的主要工具集。同时Cmake是一个跨平台的项目构建工具。

构建项目可以简单概括为四个步骤:

  1. 创建CMakeLists.txt

    cmake_minimum_required(VERSION 3.5 FATAL_ERROR) #最低版本
    project(recipe-01 LANGUAGES CXX) #项目名称和支持语言
    add_executable(hello-world hello-world.cpp) #可执行文件和相应的源文件
    
  2. 配置项目,生成构建系统(buildsystem,比如make工具对应的Makefile);

    $ mkdir build
    $ cd build
    $ cmake ..
    
  3. 执行构建(比如make),生成目标文件(包含可执行文件和库)

    $ cmake --build .
    
  4. 执行测试、安装或打包

在项目构建完毕后,我们还可以通过ldd指令来打印程序或者库文件所依赖的共享库列表。ldd指令的格式如下:

ldd(选项)(参数)
  • 选项
    • –version:打印指令版本号;
    • -v:详细信息模式,打印所有相关信息;
    • -u:打印未使用的直接依赖;
    • -d:执行重定位和报告任何丢失的对象;
    • -r:执行数据对象和函数的重定位,并且报告任何丢失的对象和函数;
    • –help:显示帮助信息。
  • 参数
    • 文件:指定可执行程序或者文库

示例:

ldd src/main

参考

  1. CMake实践应用专题

还有参考其他参考的网页,太多了,就只列举参考最多的网页了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值