cmake的基本使用

1、ubuntu下cmake的下载安装

命令行进行软件包下载;

sudo su
apt-get update
apt install cmake

安装成功后查看版本信息如下。
在这里插入图片描述

2、单文件工程的编译

项目结构:
在这里插入图片描述
main.cpp:

include <iostream>
using namespace std;

int main(){
        cout << "Hello!" << endl;
        return 0;
}

CMakeLists.txt:

#cmake required lowest version
cmake_minimum_required(VERSION 3.0)
#programs
project(demo)
#executive file
add_executable(main main.cpp)

进入到当前文件夹下,调用cmake:

cmake .

产出文件如下:
在这里插入图片描述
使用make;

make

等同于用makefile进行编译;
在这里插入图片描述
到此可以执行目标文件 ./main
在这里插入图片描述

3、多文件工程的编译

项目中文件如下;
在这里插入图片描述
fun.cpp:

#include <stdio.h>
#include "fun.hpp"

void fun(int x){
	printf("<fun>x:%d\n",x);
}

3、优越性

3.1 在某个目录下打包目的源文件

将当前目录下的所有源文件存列表存放在变量 SRC_LIST 里面,对于该变量进行调度比起列出依赖文件的做法就更加方便。
在这里插入图片描述aux_source_diretory()会打包目录文件夹下的全部源文件,我们可以使用set来存放目的的源文件。

set(SRC_LIST ./main.cpp ./fun.cpp ./fun.hpp)
add_executable(main ${SRC_LIST})
3.2 不同目录下有多个源文件

include_diretories () 可以指定多个路径下的文件作为源文件添加到目标工程中。
在这里插入图片描述

cmake_minimum_required(VERSION 3.0)
project(demo)
include_directories (ta tb)
aux_source_directory(ta SRC_LIST0)
aux_source_directory(tb SRC_LIST1)
add_executable(main main.cpp ${SRC_LIST0} ${SRC_LIST1})
3.3 添加编译子目录

add_subdirectory()可以添加编译字目录。
项目文件结构如下:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

src下的CMakeLists.txt:

aux_source_directory(. SRC_LIST)
include_directories(../include)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
add_subdirectory(main ${SRC_LIST})

cmake_4下的CMakeLists.txt:

cmake_minimum_required(VERSION 3.0)
project(demo)
add_subdirectory(src)

3.5 其他功能

  • 生成库文件add_library()、set_target_properties()
  • 链接时用findliabrary()查找库是否存在;
  • 条件编译;
  • CJson链接库;
  • 调试。
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值