VSCode+Cmake搭建C/C++开发环境

写在前面

看了网上许多教程,不过大都看得迷迷糊糊的,我能感觉到有的文章确实写得很好,比较尴尬的是我没领悟到它们的精髓。下面给出我的一些简单配置。

软件准备

MinGW下载与配置

可以到MinGW的官网下面去下载需要的软件包(友情提醒,可能会下载得很慢,不过很安全)
附上官网地址:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
根据我们MinGW中bin文件的位置进行环境变量的添加
在这里插入图片描述
在这里插入图片描述

测试是否安装成功:g++ -v("-"前面有个空格别漏掉了)
在这里插入图片描述

在输入上面的命令后有对应版本的输出,说明已经配置好了。

CMake下载与配置

可以到CMake的官网上下载需要的软件包,在Windows使用就直接下载.zip后缀的就行,到时候直接解压就完事了。
附上网址:https://cmake.org/download/
根据我们软件解压的路径来添加环境变量
在这里插入图片描述
在这里插入图片描述

测试是否安装成功:cmake -version("-"前面也有个空格哈)
在这里插入图片描述

显示安装的CMake版本是3.17.5,有版本的显示肯定也是配置成功了。

Visual Stdio Code下载与配置

可以参考下这篇文章:
https://www.yuque.com/toogo/ra12lg/oxqywb
不过.json文件咱们就不用管了,这点比较舒服,不过这是我这种菜鸡的做法,熟练之后对.json文件的配置是少不了的。
使用CMake来搭建C/C++开发环境就把下面这些插件装上
在这里插入图片描述

①:该插件是对VSCode中C/C++的支持
②:中文支持包,大多数的设置名称都有效地汉化了,翻译质量也还可以
③:这两个就不说了,是对VSCode中的CMake支持
④:
⑤:对VSCode中的代码运行的支持

测试

说明:个人对相关的.json文件都不太熟悉,所以都是利用插件来配置相关的文件,比较简单粗暴,对简单的工程项目是足够用了。
用插件来配置的话需要我们只需要写下CMakeLists.txt就行了。

#要求的最低版本
cmake_minimum_required(VERSION 3.15)

#工程名称
#将xx替换为你想使用的工程名称
project(xx)

#生成可执行文件
#xx是要生成的可执行文件(.exe)文件名, yy是源文件名1,zz是源文件名2
#这种配置适用于源文件在一个文件夹下,且源文件数目不多的情况
add_executable(xx yy.cpp zz.cpp)

这个简单模板对单个源文件和多个同一文件夹下的源文件是适用的。

单个源文件

现在就是一个main.c源文件的状态,注意我红框标识的区域,等会再编写CMakeLists.txt文件后会发生变化。
在这里插入图片描述
在这里插入图片描述

CMakeLists文件写好了,红框标识的位置还是没变化,现在开始进行Cmake的配置(CMakeLists.txt其实就是告诉CMake按什么样的方式进行配置)。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
此时生成了一个build文件
在这里插入图片描述

这3个按钮(中间的all不是按钮哈)分别是编译链接、调试、运行。用起来还是很方便,有IDE(集成开发环境)的感觉。

点击编译按钮得到的信息,编译已经完成,现在就可以进行调试或者直接运行了。
在这里插入图片描述运行结果如下:
在这里插入图片描述
打上断点,就可以调试查看程序的具体运行状况了。
在这里插入图片描述

多个源文件

源文件在同一文件夹下

这种情况常用的CMakeLists的写法就有这两种
工程的结构如下:
在这里插入图片描述

具体代码

/*------------------------------main.cpp-----------------------------------*/
#include "hello.h"
int main()
{
    hello("Tang");
    hello("world");
    system("pause");
    return 0;
}
/*------------------------------hello.h-----------------------------------*/
#ifndef __HELLO__H
#define __HELLO__H
#include <stdio.h>
#include <stdlib.h>
void hello(const char *str);
#endif
/*------------------------------hello.cpp-----------------------------------*/
#include "hello.h"
void hello(const char *str)
{
    printf("\r\nHello, %s\r\n", str);
}
CMakeLists.txt配置
//-------------------------------写法1----------------------------------------
#要求的最低版本
cmake_minimum_required(VERSION 3.15)

#工程名称
project(HelloTest)

#查找当前目录下所有源文件
aux_source_directory(. DIR_SRCS)

#生成可执行文件
add_executable(main ${DIR_SRCS})
//-------------------------------写法2----------------------------------------
#要求的最低版本
cmake_minimum_required(VERSION 3.15)

#工程名称
project(HelloTest)

#生成可执行文件
add_executable(main main.cpp hello.cpp)

这两部分编写完成后,直接进行CMake配置,然后编译链接,运行(调试看情况)。
结果如下:
在这里插入图片描述
显然是配置成功了。
不过这里想说一句,大多数情况下CMakeLists的编写还是用写法1比较好,可移植性强,搬到其他工程用可能只改个工程名就行了;写法2可以指定具体编译链接哪些源文件,不过当源文件多了写着就有点麻烦了,而且这种写法不好移植。

源文件不在同一文件夹下

工程结构
在这里插入图片描述
这种是在有几个子目录就要再写几个CMakeLists,这个例子中有Hello这个子目录,所以除了顶层的CMakeLists要写外还要在Hello目录下编写一个CMakeLists。
代码还是和源码在同一文件夹下给出的例子一样
这里在头文件包含上还有点问题,可以进行这样的处理:

/*------------------------------main.cpp-----------------------------------*/
#include "Hello\hello.h" //因为是在Hello文件夹下,需要添加一下路径
int main()
{
    hello("Tang");
    hello("world");
    system("pause");
    return 0;
}

如果不添加文件夹路径,下面给出这种情况CMakeLists的写法

//-------------------------------Hello文件夹下CMakeLists----------------------------------------
#查找当前目录下的所有源文件
#并将名称保存到 DIR_LIB_SRCS 变量
aux_source_directory(. DIR_LIB_SRCS)    

#生成链接库,命名为HelloLib
add_library(HelloLib ${DIR_LIB_SRCS})
     
//-------------------------------根目录CMakeLists---------------------------------------
#CMake 最低版本号要求
cmake_minimum_required(VERSION 3.15)

#项目信息,工程名为HelloTest
project(HelloTest)

#引入自己编写的头文件
#头文件的路径根据实际情况添加,我是在根目录下的Hello文件夹下
#大家可以在根目录下添加一个inc文件夹,把头文件放在在文件夹下,这样组织起来很方便
#直接include_directories(inc)是不是挺方便的呢
include_directories(Hello)

#查找当前目录下的所有源文件
#并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)

#添加 Hello 子目录
add_subdirectory(Hello)

#指定生成目标,即生成可执行文件test.exe 
add_executable(test ${DIR_SRCS})

#添加链接库
target_link_libraries(test HelloLib)

运行结果如下,说明我们的cmake配置没有问题,整个内容就完成了。
在这里插入图片描述

总结

配置大概就是这样了,不过里面的内容原理我也不太懂,不过这样配置满足简单的工程需求也足够了哈。
步骤如下:
1、编写源文件和CMakeLists文件
2、“Ctrl + Shift + P”,输入cmake:config(可能输几个字符就有提示了)进行Cmake的配置
3、编译、调试、运行就可以直接点最下方的那些按钮
VSCode自身的设置选项和已添加插件的设置选项都可以去看看,其中的一些设置根据需要的不同也有所不同,分寸自己把握。

更新一波:
发现这篇文章写得很潦草,很多地方都是不必要的,不过倒也没什么大错误,勉强能用。大家学习深入一些后应该会发现我这文章写的很呆,哈哈。

参考文章

https://libaineu2004.blog.csdn.net/article/details/78995740

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值