VScode配置C/C++编程总结(GCC+Clang+CMake)_vscode cmake gcc g++-程序员宅基地

技术标签: c++  

VScode配置C/C++编程总结(GCC+Clang+CMake)
自己存下档纪念一下2019.12.18

Visual Studio Code

VScode全称Visual Studio Code,是微软开发的一款轻量代码编辑器(宇宙第一代码编辑器!!),支持多个平台,Windows、Linux、OS X。功能强大,支持多种语言,还有很多非常棒的插件,具体不在多说。
上图
官网图片
官网:https://code.visualstudio.com
中文语言包:软件插件有

初接触VScode

刚刚开始知道这个软件还是上课的时候,听到老师讲,然后马上就下载了来试一下
(之前也有接触过VS2019,不过用的少,用的Dev)后来学Java,用的就更少了。偶然听到这个,心血来潮就想试一下。
软件安装很简单,和普通软件一样,比其他IDE安装的时候还要容易点。
听说这个能支持多种语言,于是我直接就拿着我最近刚用Eclipse做好的项目丢进去跑了一下,开头总是艰辛的,微软的软件用起来还是有点操作的,不过还好,很快搞定了,Java十分简单,装个插件,其他全部他自己帮你完成,很快运行-调试-成功!不过出现了中文乱码(GBK和UTF-8的问题)
一个项目跑下来,给我的整体感觉就是,太便捷了,运行和调试直接就在main的旁边,不记得快捷键都能用。页面很美观,而且有个很棒的功能就是可以分屏同时编辑同一个文件!!
当然这些都不足以成为我选择它的原因,最重要的原因是太轻便了(原谅我想不到什么词来形容),对比eclipse和VS,打开速度飞快,占用内存小,而且支持多种语言,页面美观……

配置C/C++环境

为了使用VScode,我也开始学习如何使用,Java不用怎么配置,插件一装就能编程,很方便。
但是C和C++就不是这样子了,没办法,课程需要
有人问我那为什么不用其他编译器,说白了,我就是馋它身子内存小,速度快,美观

C++环境配置(MinGW64)
不懂就问,万能的百度,什么都有。果不其然,收到一堆关于如何配置环境的,我随便点了一个别人的博客,照着博客一路做下去,最后测试,GG没用,一堆看不懂的提示。之后又找,这次学乖了,找最新日期的,免得版本什么的不兼容,再试了一次,还是不行,终于再一次搜索中我看到,查阅官网。最后照着官网的做,终于成功了。在这里给大家提个醒,配置环境,软件使用,官方文档才是最有用的
不学无术
官方教程:Get Started with C++ and Mingw-w64 in Visual Studio Code
我这里也简单总结一下配置过程
必要工具:MinGW64,VScode插件:C/C++。注意一定是有64的,没有64的是旧版本,听说已经不在更新,MinGW也可以,不过64更好用。
地址:source
注意选择离线版本(我国“网络”问题),我选择的是最新的MinGW-W64 GCC-8.1.0 x86_64-posix-seh版本
(本人win10-64位,32位也是下这个64的)里面posixwin32的区别就是取决你是否要跨平台使用(网上大佬这么讲),sjljseh的区别的话建议百度,是异常处理方式的问题。这里有个几个大佬的参考可以看看
MinGW和MinGW64:
[科普]MinGW vs MinGW-W64及其它 - foo__hack
sjlj和seh的区别:
What is difference between sjlj vs dwarf vs seh?
MingGW64 下载多个版本区别 - 夜鸥 PCYO

继续配置,下载下来的离线包解压到电脑,我选择解压到D盘根目录,即 D:/mingw64,装好把环境加到系统去,系统-属性-高级系统设置-环境变量-系统变量里的Path,编辑,添加,输入mingw64/bin的目录,我的就是 D:\mingw64\bin,弄好powershell或者cmd输gcc -v测试一下
MinGW是干什么的呢,简单来讲,VScode只是一个编辑器,没有编译的功能,这个就是一个编译器,我们集成GCC到VScode里面去

VScode里配置过程,重点,最麻烦也是这里

按照官网的教程走,软件外面新建一个文件夹作为工作区,用VScode打开它,创建一个.cpp文件,随便输内容,比如最简单的helloworld.cpp

/*helloworld.cpp*/
#include <iostream>
using namespace std;
int main()
{
   
    
    cout << "Hello world!" << endl;
    system("pause down");
}

保存好之后在工作区内新建一个.vscode文件夹
Ctrl+shift+P后输入C/C++去到编辑设置,照着教程修改,compilerPath改成你目录下的/mingw64/bin/g++.exeC语言的话就是gcc.exe

这步不理他也可以,只是为了方便自动生成c_cpp_properties.json文件而已

然后在.vscode文件夹创建三个文件,建议后面步骤照着官网来,我之前照着别人的文件复制过去总有一些问题,或者过时的内容,导致无法使用。这里我也给出我的代码,一些在官网的内容上修改了一下,总而言之就是更好用了
tasks.json,解释一下,这个是(task)任务配置,我理解的话,这个就是编译过程配置
实际过程相当于在cmd或者powershell直接输命令g++ -g 源代码.cpp -o 文件名.exe-o是输出的意思

{
   
    
    "version": "2.0.0",
    "tasks": [
      {
   
    
        "label": "build",
        "type": "shell",
        "command": "g++",
        "args": ["-g", "${file}",  "-o","${fileBasenameNoExtension}.exe"],
        "group": {
   
    
          "kind": "build",
          "isDefault": true
        }
      }
    ]
  }

launch.json这个是调试配置,也就是用gdb来调试program 按照args参数执行命令

{
   
    
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
      {
   
    
        "name": "(gdb) Launch",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",//要调试的文件
        "args": [
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44049923/article/details/103619882

智能推荐

IE浏览器设置兼容性_ie 兼容性站点 csdn-程序员宅基地

文章浏览阅读1.7k次。IE浏览器设置兼容性_ie 兼容性站点 csdn

java中string转object_java中Object转String-程序员宅基地

文章浏览阅读1w次。Object转为String的几种形式在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有Object.toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些方法一一进行分析。方法1:采用 Object.toString()方法请看下面的例子:Object obje..._string转object

Centos 7 安装 gcc-5.5_centos7 gcc5.5-程序员宅基地

文章浏览阅读5.1k次,点赞3次,收藏10次。==========运维之路环境如下[root@Centos ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@Centos ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic fir..._centos7 gcc5.5

使用命令替换文本多行内容_从命令行替换纯文本文件中的文本-程序员宅基地

文章浏览阅读3.2k次。使用命令替换文本多行内容A very useful function which is missing from the Windows library of command line tools is the ability to replace text in plain text files. A function like this can be used for a variety of..._批量替换ini内容

Golden Gate的一次教训-程序员宅基地

文章浏览阅读167次。事情大致过程是这样的:两节点的RAC数据库(A和B),其中A节点所在的主机不知道什么原因重启了,导致A节点数据库宕掉,原来跑在A节点上的GG便自动failover到B节点上了,当我尝试启动extract时,出现以下错误: ..._non-standard redo detected in 10g compatible format

android 开发框架_通过此拖放框架学习Android开发-程序员宅基地

文章浏览阅读223次。android 开发框架 1990年代后期,我开始进行涉及计算机的基于教室的研究时,我要做的第一件事就是将一些计算机带入教室。 我的顾问获得了六台第一代Bondi Blue iMac的资助,这些iMac将在我们进行研究的中学安装。 带着那些诱人的胶状形状的机器进入学校后,我对寻找参与者的担忧就烟消云散了。 那时,任何地方的计算机,尤其是中学教室里的计算机,仍然相对不常见,我们能够将其新颖性融..._安卓拖拽框架

随便推点

CSS中元素在某一行上 居中/居左/居右-程序员宅基地

文章浏览阅读1.8k次。我们在做网页的时候经常会遇到这样的需求,要求某张图片在某一行上 居中/居左/居右。传统的做法是用table来分配,但是这样做极其笨!!如果我们采用CSS,一般有2种做法:1)设置这一行的div的style为:text-align:left; / text-align:center; / text-align:right;2) 设置该元素的style为:float:left; / float:rig..._style 里写行居中居左

【CNN时序预测】基于卷积神经网络的时间序列预测附matlab代码_matlab 时间序列 卷积神经网络-程序员宅基地

文章浏览阅读221次。摘要: 时间序列预测是许多领域中的关键问题,包括金融、天气预报、股票市场等。卷积神经网络(CNN)已经在图像处理和自然语言处理等领域取得了显著的成功,然而,在时间序列预测中的应用仍然相对较少。本文提出了一种基于卷积神经网络的时间序列预测算法,该算法通过将时间序列数据转化为图像,利用CNN模型进行预测。本文详细介绍了该算法的步骤,并通过实验验证了其有效性。引言 时间序列预测是指根据过去的观测值来预测未来的值。在许多领域中,时间序列预测是一项重要的任务。_matlab 时间序列 卷积神经网络

Docker搭建FastDFS + Ngnix图片文件服务器_docker 文件服务器 fastdfs-程序员宅基地

文章浏览阅读937次,点赞28次,收藏23次。首先,确保系统已更新到最新版本。: 安装所需的软件包以支持Docker的安装过程: 使用以下命令设置Docker稳定版仓库: 运行以下命令验证Docker是否成功安装:如果Docker安装成功,您应该能够看到Docker引擎的版本信息。_docker 文件服务器 fastdfs

centos7安装python3.7.4_【原创】Centos 7 升级安装python3.7.4-程序员宅基地

文章浏览阅读105次。1、安装必须的软件#更新源中包列表yum -y update#先安装扩展源EPEL 才能安装pip 否则会报错yum -y install epel-release//解决ssl问题,否则报错:pip is configured with locations that require TLS/SSL//你只需执行即可,具体解决过程参见:http://www.cnblogs.com/minglee/..._centos7 python3.7.4 ssl

【前端JS】如何使用正则表达式去除数字前面/后面的逗号_js去除掉数字之间的逗号-程序员宅基地

文章浏览阅读3k次。去除前面逗号var str=",,,,,1,2,3,4,5,6,7";str.replace(/^,+/, '');去除后面逗号 let str1 = "1,2,3,4,5,6,7,10,11.2,,,";let str3 = str1.replace(/\d([^\d]+?)$/g, (arg1, arg2) =&gt; {return parseFloat(arg1);})..._js去除掉数字之间的逗号

Coggle数据科学 | Streamlit + LangChain 问答可见即所得~_create_sql_agent streamlit-程序员宅基地

文章浏览阅读1k次,点赞20次,收藏12次。LangChain是一个框架,旨在开发由语言模型驱动的应用程序。它不仅仅是通过API调用语言模型,还提供了数据感知、代理性质和一系列模块支持,使开发者能够构建更强大、更灵活的应用程序。_create_sql_agent streamlit

推荐文章

热门文章

相关标签