1.前言

前几天在公司的Ubuntu20.04电脑上配置了VSCode + Cmake的C/C++开发环境,可以用来跑跑C/C++的代码,然后,现在住的地方用的Windows,开发环境用的是 Visual C++ 6.0,环境有点老,跑点简单的C代码还行,但是要跑比较复杂的C++代码,代码敲起来就不那么舒服了。

所以,就想配置的和公司Ubuntu的C/C++开发环境一样,用VSCode + Cmake配置一套在Win10运行的开发环境,然后再写个简单的“一键编译运行”脚本,运行一下就可以跑程序,岂不美哉~~

说干就干。

2.软件准备

主要有下面这几个软件要安装一下。

  • VS Code ;
    (本人最喜欢的IDE!界面简洁,安装包也不大(对比VS几个G,你细品),通过安装插件的方式扩展功能,这种方式非常奈斯!)
  • Cmake ;
  • MSYS2;(用于在windows上安装编译器gcc、g++、make)

2.1 VSCode的安装

首先是VS Code的安装,直接去VSCode的官网(https://code.visualstudio.com/)下载安装包VSCodeUserSetup-x64-1.69.0.exe (Windows 64位操作系统),根据自己的电脑是64位(x64)还是32位(x86)选择相应的安装包,一路正常安装即可,比较简单。

我这里主要想说的是个人觉得VS Code的一些好用的插件,也做自己备忘。

  1. Chinese中文插件,安装完就是中文界面了;

  2. Partial Diff插件,可比较代码、文件的不同,虽然说有更专业的beyong
    compare,但是bc要收费,破解安装也有点麻烦;

  3. Rainbow Brackets,多重括号提示,有多重括号、大括号,会以不同颜色区分,代码会更方便查看;

  4. One Dark Pro,VS Code的皮肤插件,默认的界面还是有点一般,安装完后会更好看;

  5. Window Colors,VS Code多开插件,开了多个VS Code,安装完这个插件后,每个窗口会以不同颜色呈现,方便区分,非常奈斯的一个插件;

  6. Tabnine AI,这个插件可太牛逼了,我也是最近刚开始用,可通过AI预测你下一步要输入的代码,然后你可用Tab键进行补全,非常好用!!!墙裂推荐,我用了后仿佛打开了新世界!

接下来就是一些与C/C++语言相关的开发插件了,就不多介绍了,基本都要装上。

  1. C/C++;
  2. C/C++ Extension Pack;
  3. C/C++ Themes;
  4. Cmake工具,这个应该在安装完前面3个应该会自动安装上,这里提一下;

    VS Code的安装就说这么多,读者要是有更多、更好用的插件,欢迎交流~~

2.2 CMake的安装

同样到官网(https://cmake.org/download/)下载适配Win10-64位系统的安装包,下载有点慢,好在安装包只有不到30M,等了几分钟就下完了。

下载完后,也是一路安装,注意要勾上把CMake加入到系统路径,省得需要自己手动添加。

安装完后,重启一下电脑,让环境变量生效。

win+r,输入cmd,打开windows命令行,输入 cmake --version,打印以下信息说明,正确安装了。

2.3 MSYS2的安装

最后是MSYS2的安装,这个可能有点麻烦,我也是最近刚知道这个软件,这个软件可以很方便的在Windows上安装gcc,g++和Make等一系列在Linux下的软件,省得我们要一个个地安装,跟Linux的终端有点像。

安装过程参考下面的网址就好了(我就不重复造轮子了= =):

  • https://mirror.tuna.tsinghua.edu.cn/help/msys2/
  • https://www.jianshu.com/p/04636461341e

首先是安装MSYS2,安装好后,按网址说明的换源,然后输入pacman -Sy 刷新软件包数据,然后挨个安装gcc,g++,make

 #安装gcc g++pacman -S mingw-w64-x86_64-toolchain#查询并找到msys/makepacman -Ss make#安装makepacman -S msys/make

最后,把gcc,g++,make添加到Windows系统环境变量。

然后,重启电脑。

在Windows命令行,依次输入 gcc --version 、g++ --version 、 make --version,打印出下图,说明gcc、g++、make安装成功。


然后就是VS Code工程的配置了。

3.VS Code工程的配置

首先,新建一个Demo文件夹,用VS Code打开,然后再分别新建两个文件夹include和src,用于放头文件和源文件,工程如下:
在test.h中随便定义一个宏,在main.cpp中打印出来。

main.cpp

#include <iostream>
#include "../include/test.h"using namespace std;int main(void)
{cout << "Hello, world!" << endl;cout << CONST_VALUE << endl;return 0;
}

test.h

#ifndef __TEST_H
#define __TEST_H#define CONST_VALUE  1234#endif // __TEST_H

基本工程建立完毕。

然后,进行编译配置,按ctrl+shift+p,输入cmake,点击CMake:配置那项:

接着就会在右下角弹出一个窗口,点击create:

然后输入工程名:

选择可执行文件:

这样就会新生成一个CMakeList.txt的CMake文件,这是个简单模板,然后我们根据CMake的语法规则(不懂的自行查一下,比较简单,至少比写makefile的规则简单的多)进行修改如下(注释很清楚):

#CMake 最低版本号要求
cmake_minimum_required(VERSION 3.0.0)#指定工程名
project(Demo VERSION 0.1.0)#指定C/C++编译器
set(CMAKE_C_COMPILER "C:/msys64/mingw64/bin/gcc")
set(CMAKE_CXX_COMPILER "C:/msys64/mingw64/bin/g++")#指定C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)#指定头文件所在的路径
include_directories(${PROJECT_SOURCE_DIR}/include)#在 ${PROJECT_SOURCE_DIR}/src 路径下搜索.cpp源文件
aux_source_directory(${PROJECT_SOURCE_DIR}/src ALL_SRCS)#查找当前目录下的所有源文件
#并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)#指定生成的可执行文件夹的路径
set(EXECUTABLE_OUTPUT_PATH .)#生成可执行文件 main.exe
add_executable(main ${ALL_SRCS})

然后在VS Code的终端,输入 cmake -G “Unix Makefiles” ./ ,(注意这里不是cmake .,但我不知道为什么不行,在ubuntu可以正常跑,有知道的朋友麻烦说下)通过CMake生成Makefile:

可以看到,在工程目录会生成对应本工程的Makefile,生成规则是由我们写在CMakeLists.txt指定的:

再输入make进行编译:

同样,在工程目录会生成对应的可执行文件main.exe(在CMakeLists.txt指定):

然后,直接运行该exe,可以跑我们的程序:

最后,我们再将这些编译运行命令,写成一个build.bat脚本(Ubuntu上就是build.sh文件),真正实现一键编译运行!
build.bat

rm main.exe
rm Makefile
rm CMakeCache.txt
cmake -G "Unix Makefiles" ./
make
.\main.exe

一键编译运行:

一键编译运行的感觉是不是很爽,看着自己的代码慢慢地编译到执行的过程。

OK,至此,在Windows平台使用VScode + Cmake配置C/C++开发环境就完成了!!撒花~~Cheers!!

4. 结束语

  • 如果后面要链接动态库、静态库那些,查一下相应的CMake规则就好了;
  • 在此过程中,若碰到什么问题,用必应搜一下,照着解决就好,没有什么路是一帆风顺的~;
  • 我第一次在Windows上把整个过程跑通也搞了几个小时,Ubuntu上要简单一些。

写这篇博客又花了几个小时= =,希望对读者有帮助吧。

在Win10系统上使用VScode + Cmake配置C/C++开发环境,实现一键编译运行相关推荐

  1. Ubuntu12.10-amd64系统上搭建Android4.2(JellyBean)源码开发环境

    注意:1) 从android4.1开始,编译Android源码必须使用ubuntu 64位系统,所以请预装Ubuntu64位操作系统! 建议去ubuntu官网下载 ubuntu-desktop-### ...

  2. 如何高效快速地在Linux系统上部署Node.js+Express+MySQL的开发环境(桌面可视化)...

    一.前言 可能一些初级前端和我一样,在有些项目需要前后台都一个人打通搞定的时候,对于后台和开发环境的部署还是比较头疼的.特别是Linux系统,由于没有系统接触过,也不太喜欢去记背那么多命令,大部分命令 ...

  3. 一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_200 时光荏苒,过隙白驹,即将进入2022年,著名敏捷开发语言Python也放出了3.10最终版,本次我们来展示一下在不同的系统和 ...

  4. Python在Win10系统的安装和使用配置

    Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言等等. 下载 ...

  5. vscode配置c 环境_SAST Weekly教你在macOS上用VS Code配置C/C++编程环境

    SAST Weekly 是由电子工程系学生科协推出的科技系列推送,内容涵盖信息领域技术科普.研究前沿热点介绍.科技新闻跟进探索等多个方面,帮助同学们增长姿势,开拓眼界,每周更新,欢迎关注!欢迎愿意分享 ...

  6. win10下的linux占用大小,详解Win10系统上使用Linux之前要知道的几件事

    现在微软的官方项目Primordial已经能够在Windows 10中翻译Linux系统指令,并可以原生运行包括shell等核心Linux工具,在win10系统中运行Linux不再是儿戏. Primo ...

  7. 【记录】在win10系统上安装ubuntu(乌班图)双系统

    在win10系统上安装Ubuntu(乌班图)双系统 先说一下Ubuntu系统的优势: ubuntu就是为个人用户打造的系统 桌面特效很炫 运行计算很快 没病毒(linux下的病毒个人电脑是碰不到的) ...

  8. win10的计算机服务器,Tomcat服务器怎么在Win10系统上搭建-电脑自学网

    Tomcat服务器也是经常被用到的一种比较简单的服务器,那么Win10系统怎么配置Tomcat服务器呢?Tomcat服务器怎么在Win10系统上搭建?下面给大家介绍具体的操作步骤. 搭建方法: 必要前 ...

  9. 解决Pr在win10系统上安装不上问题 Pr2021版-Premiere Pro 2021中文正式版安装教程

    Adobe Premiere Pro 2021 for mac 15.2 是一款专业的视频剪辑软件,Premiere Pro 2021 集成了视频采集.剪辑.调色.美化音频.添加字幕等功能,可以帮助你 ...

最新文章

  1. mysql %用户域_MySQL运维---用户权限及管理
  2. STL的deque容器
  3. 【oracle】多个用户的对象 导出导入
  4. php如何提高程序运行效率,如何提高PHP的运行效率 | 萧小寒
  5. VS2015+cmake3.8+opencv3.2+opencv-contrib3.2编译及配置步骤
  6. 作者:刘建楠(1963-),男,就职于中国石油天然气股份有限公司庆阳石化分公司...
  7. java查漏补缺(基础篇)
  8. u盘版linux initramfs,Linux_内核升级后 出现initramfs错误问题解决, 出现initramfs找不到/root /hos - phpStudy...
  9. Linux下进行源码安装时如何避免找不到那些使用--prefix指定目录安装的依赖
  10. 进销存管理系统是什么?能给企业带来哪些好处?
  11. 关于电子信息/计算机类专业从业者相关的证书与职称
  12. 微型计算机原理姚向华答案,微型计算机原理试题答案-微型计算机原理姚向华.doc...
  13. 31省市数字经济“十四五”规划路线图
  14. 网站备案 服务器变更,网站变更服务器备案
  15. Unity 生成随机房间、洞穴(2D、3D地图)总结
  16. 无线通信中存在的远近效应、多普勒效应、多径效应以及其应对策略
  17. 游戏《迷你世界》如何吸引小鸡到鸡窝里?这些道具很重要!
  18. Java代码实现用for循环打印斐波那契数列前20项
  19. Botnet趋势典型攻击链
  20. iphone与android共享位置,如何使用“查找我”在iPhone和其他设备上共享您的位置...

热门文章

  1. android检查悬浮窗权限,Android 悬浮窗权限校验
  2. ab压测与siege压测
  3. 【Linux】用户信息
  4. Java树形结构的实现
  5. javaEE之ssm框架(有完整的项目可以下载,包括数据库)
  6. 遗传算法求二元函数极值怎么编码_使用遗传算法求二元函数的最小值
  7. 聚焦离子束FIB测试用途以及注意事项
  8. 基于深度学习的视觉目标检测技术综述
  9. Ubuntu下的游戏推荐
  10. Linux记录操作日志