C语言初学者工具选择:vscode + MSYS2 + cmake 搭建 C环境

2023-10-21 13:01

本文主要是介绍C语言初学者工具选择:vscode + MSYS2 + cmake 搭建 C环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 前言
    • 1. MSYS2 安装
      • 1. 下载安装包
      • 2. 安装
      • 3. pacman 换清华大学源
      • 4. 安装 mingw-w64 toolchain 和 cmake + ninja
      • 5. 将 toolchain 加入系统环境变量
    • 2. 设置 vscode
      • 1. 必要的插件
      • 2. 一个简单的 vscode cmake 项目
    • 最后
      • C
      • 数据结构与算法
      • CMake

前言

网上关于使用 vscode 配置 C 环境的博文非常多,但大多数都是使用 vscode 的 code runner 插件来运行,创建 tasks.json 和 lunch.json 来执行调试任务,比如:vscode配置C语言环境,VScode搭建C/C++开发环境。这种方式相当麻烦,各种路径啊环境变量啊要修改,而且这种方式只适合单个 C 文件。我初学 C 的时候,使用的也是这样的方式,好一番折腾,最近我看到了一篇使用 MSYS2 + cmake 搭建 vscode C 环境的好文,地址在这里:给萌新的C/C++环境搭建攻略(VSCode和MSYS2) 。文章非常详细,但是关于 vscode 使用 cmake tools 插件的部分没有具体描述,我在此做个补充。

1. MSYS2 安装

1. 下载安装包

  • 官网安装地址(可能上不去)
    MSYS2官网

  • 清华大学开源软件镜像站 | MSYS2(推荐)
    清华大学开源软件镜像站

2. 安装

安装过程很简单,一路 next 即可
MSYS2安装

3. pacman 换清华大学源

pacman 是MSYS2 的包管理器,可以通过它安装各类工具和第三方库
打开 MSYS2 命令行(msys2.exe,位于MSTYS2 目录的根目录下),默认的源在国内访问可能很慢,建议换成清华大学的源,输入sed -i "s#https\?://mirror.msys2.org/#https://mirrors.tuna.tsinghua.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist* 再按回车即可。

4. 安装 mingw-w64 toolchain 和 cmake + ninja

  • mingw-w64 toolchain
    打开 MSYS2 命令行,输入pacman -Syu 同步更新所有工具,然后输入pacman -S mingw-w64-ucrt-x86_64-toolchain 安装 mingw-w64 工具链。中间出现询问之类的一路回车就好,等待一段时间后应该就安装完毕了。
    ucrt64
    安装
  • cmake + ninja
    将指令改为pacman -S mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-ninja,其余同上

5. 将 toolchain 加入系统环境变量

添加环境变量的目的是使得 toolchain 能在计算机的各个位置被直接访问到。

顺序:设置->系统->系统信息->高级系统设置
高级
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
完成后在 windows 终端中(win + X,选择windows 终端)输入gcc --versioncmake --version,出现下图内容说明设置成功
在这里插入图片描述

2. 设置 vscode

1. 必要的插件

  • C/C++
  • cmake
  • cmake tools
    需要设置 cmake tools 插件,打开vscode 设置,输入@ext:ms-vscode.cmake-tools,下滑至下图位置,加入 cmake.exe 的路径
    在这里插入图片描述

2. 一个简单的 vscode cmake 项目

  1. ctrl + shfit + P 打开命令面板,输入 cmake: quick start 并选择
    在这里插入图片描述
  2. 提示输入项目名称,随便写一个就好了
    在这里插入图片描述选择项目模板,C 项目就选第二个
    在这里插入图片描述选择项目类型,运行单个 C 文件的项目就选第二个
    在这里插入图片描述
  3. 完成上面的步骤后会生成一个项目模板
    在这里插入图片描述
  • CMakeList.txt

    # 运行项目所需的 cmake 的最低版本,3.0.0 过低引发了报错,建议改为3.22.0
    cmake_minimum_required(VERSION 3.0.0)	
    # 设置项目名,版本号,所用语言
    project(cmake_beginning VERSION 0.1.0 LANGUAGES C)# 测试,这两行可以删去
    # include(CTest)
    # enable_testing()# 由源文件生成可执行文件
    add_executable(cmake_beginning main.c)# 打包,这三行可以删去
    # set(CPACK_PROJECT_NAME ${PROJECT_NAME})
    # set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
    # include(CPack)
    

    修改后的版本如下:

    cmake_minimum_required(VERSION 3.22.0)project(cmake_beginning VERSION 0.1.0 LANGUAGES C)add_executable(cmake_beginning main.c)
    
  1. 编译,运行,调试
  • 编译,点击最下方的 build(准确说是构建整个项目)
    在这里插入图片描述
    在这里插入图片描述

  • 运行
    在这里插入图片描述
    在这里插入图片描述

  • 调试
    在这里插入图片描述
    在这里插入图片描述

  1. 想要添加其他源文件的话,直接在 CMakeList.txt 中添加即可,格式:add_executable(可执行文件名 源文件名),注意不要和已有的文件同名,如:
    在这里插入图片描述

最后

这里给出一些 C 相关的书籍

C

  • 入门:《C 语言程序设计:现代方法》
  • 进阶
    • 《C 和指针》
    • 《C 专家编程》
    • 《C 陷阱与缺陷》
    • 《深入理解 C 指针》

数据结构与算法

  • 《算法精解:C 语言描述》,这本书给出了完整的代码,非常推荐!下载地址
  • 《数据结构与算法:C 语言描述》

CMake

  • 《Cmake Cookbook》,这本书非常适合入门 cmake,中文版由国内大佬翻译完成,原下载地址可能打不开,我将它传到了百度网盘上

祝大家学有所成!🤗🤗🤗

这篇关于C语言初学者工具选择:vscode + MSYS2 + cmake 搭建 C环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/254577

相关文章

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

MongoDB搭建过程及单机版部署方法

《MongoDB搭建过程及单机版部署方法》MongoDB是一个灵活、高性能的NoSQL数据库,特别适合快速开发和大规模分布式系统,本文给大家介绍MongoDB搭建过程及单机版部署方法,感兴趣的朋友跟随... 目录前言1️⃣ 核心特点1、文档存储2、无模式(Schema-less)3、高性能4、水平扩展(Sh

Go语言中如何进行数据库查询操作

《Go语言中如何进行数据库查询操作》在Go语言中,与数据库交互通常通过使用数据库驱动来实现,Go语言支持多种数据库,如MySQL、PostgreSQL、SQLite等,每种数据库都有其对应的官方或第三... 查询函数QueryRow和Query详细对比特性QueryRowQuery返回值数量1个:*sql

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因