cmake快速入门(安装及创建项目)

一、cmake简介

 CMake是一个开源的构建工具,用于自动化构建过程。它不直接构建项目,而是生成适用于不同编译器和操作系统的构建脚本,如Makefile、Visual Studio项目文件等。这使得开发者能够轻松地在不同平台上构建他们的项目。

cmake优势:

  1. 跨平台性:CMake能够生成针对各种操作系统(如Linux、Windows、macOS)和编译器(如GCC、Visual Studio)的构建文件,确保项目在不同环境中具有良好的可移植性。

  2. 模块化:CMake支持模块化的项目配置,使得项目的构建规则能够被组织为独立的CMake模块,方便项目的管理和维护。

  3. 可扩展性:开发者可以编写自定义的CMake模块和宏来满足项目特定的需求,使CMake适用于各种项目类型。

  4. 自动依赖管理:CMake能够自动检测和管理项目的依赖关系,包括库文件和头文件,简化了构建配置的过程。

  5. 简化构建过程:通过CMake,开发者可以更轻松地配置构建选项、编译和安装项目

二、cmake安装及测试

1.安装

 首先查看自己的虚拟机上是否有cmake  输入命令(cmake -version)

没有就下载安装     输入命令(sudo apt install cmake)

提示(Y/n)输入“y”就可以

下载成功后输入命令以查看安装是否成功    输入命令(cmake -version)

然后就是安装gcc和g++,先输入命令(g++ -version)查看版本,没有就执行命令(sudo apt install g++)进行安装,有Y选y,gcc同理

至此,准备工作完成

三、创建项目

1.创建一个新文件夹并在文件夹内打开终端,输入code .  来打开vscode

2.进入vscode后,直接按下快捷键  ctrl+shift+p,选择CMake:Quick Start

3.输入项目名称

4.选择用什么语言,博主学c就选c

5.选择创建可执行编译文件

6.这里根据需求,如果都不需要就都不勾选,直接点击确定即可

7.ctrl+c保存后,左上角会直接生成build文件夹

8.接下来在左边创建文件夹,至少要有bin,inc,lib,src这些文件夹

9.接下来在main.c这个文件里面按F5,点击默认配置

10.点击打开launch.json

11.点击右下角添加配置,并选择第一个(gdb启动)

12.在里面修改配置信息

修改为/build+项目名称就可以

13.到这里生成了一个json文件,我们还要生成第二个,点击CMakeLists.txt,输入快捷键ctrl+shift+b,然后点击“没有找到要运行....”

14.选择第一个,“使用模板.....”

15.选择others

16.然后进入到task.json,将里面的内容换成以下内容,直接ctrl+c/v

换成以下代码

// tasks.json文件配置
{
    "version": "2.0.0",
    "options": {
        "cwd": "${workspaceFolder}/build"
    },
    "tasks": [
        {
            "type": "shell",
            "label": "cmake",
            "command": "cmake",
            "args": [
                ".."
            ]
        },
        {
            "label": "make",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "command": "make",
            "args": []
        },
        {
            "label": "Build",   //### launch.json中选择了这个
            "dependsOrder": "sequence",
            "dependsOn": [
                "cmake",
                "make"
            ]
        }
    ]
}

17.接下来配置自己的项目,删除生成的main.c,在src里面重新创建一个main.c方便用来测试cmake项目是否创建好

main.c的测试代码:

#include <stdio.h>
int main(int argc, char const *argv[])
{
    printf("HELLO  WORLD!!!\n");
    return 0;
}

删除刚一开始生成的main.c后,CmakeLists.txt,会报错,直接删除报错那一行就可以

18.最后配置CmakeLists.txt,在里面ctrl+c/v以下代码(主要是引入inc头文件,其他目录的头文件,要编译的文件等),下面的代码没有依赖库,有需求自己添加即可

#debug模式
SET(CMAKE_BUILD_TYPE Debug) #debug模式
#SET(CMAKE_BUILD_TYPE Release) #Release模式

#暂时不管,测试
include(CTest)
enable_testing()

# 2.需要的依赖库 现在没有

# 3.设置可执行文件与链接库保存的路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

# 4.设置头文件目录使得系统可以找到对应的头文件
include_directories(
${PROJECT_SOURCE_DIR}/inc  #自己目录的头文件
${EIGEN3_INCLUDE_DIR}  #其他系统目录的头文件 也可以直接写路径/usr/include/eigen3
${Pangolin_INCLUDE_DIRS}
)

# 5.编译动态库并链接库文件


# 6.生成可执行文件
#选择需要编译的源文件,有几个文件写几个
#add_executable(my src/main.c src/test.c)
# 扫描src目录下的所有C文件
aux_source_directory(src SRC_FILES)
add_executable(main ${SRC_FILES})

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})

#配置cmake项目c语言的版本 99
set(CMAKE_C_STANDARD 99)
# 设置交叉编译器的位置
set(CMAKE_C_COMPILER gcc)
include(CPack)

注意,里面的这三行代码,29行等价于31,32,建议使用29行,更加直白一点

选择29行这个的话,其实就是将src文件下的main.c文件,编译成叫main的二进制文件,如图,左边bin目录下的main(编译之后才会出现)

19.编译测试(两种办法)

第一种:直接点击下面最右边的小三角

输出结果,测试成功

第二种在终端输入命令

cd ../ 返回上级目录

cd ./build 进入build文件夹,输入make,会提示main文件已经编译好了

接下来cd ../退出build目录,cd ./bin进入bin目录, 执行./main编译好的main文件,输出内容,即测试成功

安装完成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值