vscode 采用C++17版本进行编译的实现

目录
  • Code Runner
  • 不用Code Runner

有一天我在打题的时候,使用了这种方式来初始化一个vector

vector<int> nums = {<!--{C}%3C!%2D%2D%20%2D%2D%3E-->-4,-1,0,3,10};

编译器马上很快就执行了编译命令

if ($?) { g++ day2_1.cpp -o day2_1 } ; if ($?) { .\day2_1 }

并且也很快的报了错(寄了)

day2_1.cpp: In function 'int main()':
day2_1.cpp:17:37: error: in C++98 'nums' must be initialized by constructor, not by '{...}'
     vector<int> nums = {-4,-1,0,3,10};

很明显这是因为我的编译命令采用的C++版本不支持这种vector初始化的方式
所以我们需要修改编译选项

但是vscode这个高级记事本修改起来还挺麻烦的,所以在此记录一下

Code Runner

在vscode里,我一般使用codeRunner这个插件来对代码进行编译运行,所以我这里的修改版本是在Code Runner上修改的

我们直接进入vscode,在我们.vsode文件夹下,修改setting.json文件,加入一条设置

 "code-runner.executorMap": {
        "cpp": "cd $dir && g++ -std=c++17 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        }

修改保存完之后,我们再次编译这个文件,可以发现命令行里的编译命令变成如下所示了

if ($?) { g++ -std=c++17 day2_1.cpp -o day2_1 } ; if ($?) { .\day2_1 }

good,这样我们的代码就能正确的编译运行了

不用Code Runner

有些hxd不喜欢用Code Runner,那也行,只用在.vscode下的tasks.json文件中,设置一下编译选项即可

我的tasks.json长这样

{
  "version": "2.0.0",
  "tasks": [
      {
          "type": "shell",
          "label": "task g++",    //修改此项
          //"command": "D:\\2Software\\mingw64\\bin\\g++.exe",
          "command": "C:\\Mingw64\\mingw64\\bin\\g++.exe",
          "args": [
              "-g",
              "${file}",
              "-o",
              "${fileDirname}\\${fileBasenameNoExtension}.exe",
              "-std=c++17"
          ],
          "options": {
              "cwd": "C:\\Mingw64\\mingw64\\bin"
          },
          "problemMatcher": [
              "$gcc"
          ],
          "group": "build"
      }
  ]
}

到此这篇关于vscode 采用C++17版本进行编译的实现的文章就介绍到这了,更多相关vscode C++17编译内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • VSCode C++多文件编译的简单使用方法

    C++中编写类时往往会分成.h和.cpp方便代码编写,这篇文章就来讲讲VSCode中怎么进行多文件编译. 1.安装插件 为了方便编译需要安装图中插件,不过相信写C++的应该都安装了吧. 2.原因分析及解决思路 当我们按单文件编译方法直接进行多文件编译的时候会出现报错 在报错中指出我们类中的成员函数未定义,这是因为我们实现成员函数的cpp文件为被编译. VSCode其实是通过通过插件自动的编译命令并运行.编译指令在.vscode文件下的tasks.json中,于是我们查看一下自动生成的编译指令.

  • vscode 配置 C/C++编译环境(完整教程)

    第一步:下载安装 下载MinGW-W64 GCC-8.1.0编译器(32和64版本都有) MinGW-W64 GCC下载地址:https://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win32/Personal Builds/mingw-builds/installer/mingw-w64-install.exe 离线下载地址:https://sourceforge.net/projects/mingw-w64

  • vscode 配置 C/C++ 编译环境的详细图文教程

    vscode c++ 环境配置 第一步:下载安装 下载MinGW-W64 GCC-8.1.0编译器(32和64版本都有) MinGW-W64 GCC下载地址:https://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win32/Personal Builds/mingw-builds/installer/mingw-w64-install.exe 离线下载地址:https://sourceforge.net/pr

  • VSCode搭建C/C++编译环境的详细教程

    Visual Studio Code (vscode)编译C++ Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮.智能代码补全.自定义热键.括号匹配.代码片段.代码对比 Diff.GIT 等特性,可谓是微软的良心之作. 下载安装VS Code https://code.visualstudio.com/Download 安装cpptools插件 打开VS Code,快捷键ctrl+shift

  • centos 7 vscode cmake 编译c++工程的教程详解

    一.环境说明 1)gcc/g++  cmake安装建议 gcc/g++内核自带的即可,如果需要新的自行安装, cmake也一样,如有需要新的版本自行安装. 2)vscode安装插件 必要的插件c/c++ 0.28.1 cmake 0.0.17 cmake tools 1.4  (这几个插件的版本可能会不同,以扩展搜索到的最新的为准) 二.创建项目实验 1)打开项目文件夹 第一步:打开vscode,点击左上角文件,在下拉菜单选择打开文件夹!注意,是打开文件夹,不是工作区,也不是其它的!! 第二步:

  • vscode和cmake编译多个C++文件的实现方法

    目的是利用vscode及相关插件编译多个C++文件. 我已经装好cmake和mingw并且将它们的路径添加到系统变量path中了. vscode装上如下几个插件: 点击vscode左上角 文件->首选项->设置,弹出如下窗口: cmake tools里头有一项cmake.preferredGenerators要根据编译器修改成对应的值,mingw对应的是MinGW Makefiles 下面一项cmake要配置cmake的安装路径,我的是C:\\Program Files\\CMake\\bin

  • vscode 采用C++17版本进行编译的实现

    目录 Code Runner 不用Code Runner 有一天我在打题的时候,使用了这种方式来初始化一个vector vector<int> nums = {<!--{C}%3C!%2D%2D%20%2D%2D%3E-->-4,-1,0,3,10}; 编译器马上很快就执行了编译命令 if ($?) { g++ day2_1.cpp -o day2_1 } ; if ($?) { .\day2_1 } 并且也很快的报了错(寄了) day2_1.cpp: In function 'i

  • 解决.net framework 4.0环境下遇到版本不同编译不通过的方法详解

    本文内容:1.问题引出2.问题解决3.原因分析 最近部门的开发环境都更新到了WIN7+.NET framework4+VS2010上,在体验新技术和新环境带给我们提高效率的方式方法的同时也带来了一些兼容性的问题:这几天项目闲暇时在研究SQLite,在做实验的时候碰到个问题,代码编译通过执行时反复异常中断,查到后面原来是SQLite.dll是在framework2.0环境下编译的而现在的运行环境是framework4.0,所以就出现了运行异常,如图: 由于以后的开发过程中,可能会引用一些第三方的组

  • win2008下mysql8.0.11升级mysql8.0.17版本详细步骤

    升级背景: 为了解决mysql低版本的漏洞,从mysql5.5升级到了8.0.11版本,再次升级到了8.0.17版本(从版本是2019.7.22发布) mysql8.0.10以上的版本,安装步骤基本一样 经过学习,得知: MySQL的升级方式分为两种:原地升级和逻辑升级.这两种升级方式,本质没有什么区别的.只是在对数据文件的处理上有些区别而已.原地升级是直接将数据文件进行拷贝,而逻辑升级对数据文件的处理方式是通过逻辑导出导入,需要用到mysqldump. 逻辑升级大家都理解,这种方式在数据量比较

  • VSCode 使用 Code Runner 插件无法编译运行文件名带空格的文件问题

    使用 Visual Studio Code 写 C++ 程序最烦心的是大概就是使用 Code Runner 插件无法编译运行文件名带空格的文件了,这个问题困扰了我好久,虽然不影响学习,但太多分隔符总觉得不顺眼,于是我仔细研究了一下它. 先创建一个叫 "hello world" 的测试程序,我们再根据 G++ 报错英文分析一下原因: g++.exe: error: hello: No such file or directory g++.exe: error: world.cpp: No

  • 使用client-go工具调用kubernetes API接口的教程详解(v1.17版本)

    目录 说明 效果 实现 1.拉取工具源码 2.创建目录结构 查询代码实例 创建deployment资源 更新deployment类型服务 删除deployment类型服务 说明 可以调取k8s API 接口的工具有很多,这里我就介绍下client-go gitlab上client-go项目地址: https://github.com/kubernetes/client-go 这个工具是由kubernetes官方指定维护的,大家可以放心使用 效果 运行完成后,可以直接获取k8s集群信息等 实现 1

  • PHP重要安全升级说明 推荐升级php 5.2.17版本

    以下文档发布于2011-3-22日 为了进一步提高PHP程序的安全问题,星外要求所有用户升级到PHP5.2.17以上版本,升级办法如下: (对于装了Zend的用户,您需要删除ZEND,删除zend时全部选默认就可以,升级PHP成功后您可以再一路默认装上ZEND.) 1.停止IIS,在控制面板,添加删除中删除PHP安装包 2.删除C:\windows\php.ini 3.下载最新版本PHP安装包.下载地址 http://www.jb51.net/softs/26087.html 4.安装最新版本P

  • Visual Studio Code (VSCode) 配置搭建 C/C++ 开发编译环境的流程

    目录 前言 VSCode安装流程 1. 下载VScode 2. 安装C/C++扩展插件工具 3. 下载MinGW 4. 配置环境变量 5. 使用简单的.cpp文件配置C++环境 6. 运行 扩展 前言 工作多年,突然发现很多C++的基础都忘记了,加之C++不断更新换代后的各种新特性,于是想重拾C++的基础学习.虽然现在工作都是Linux平台,但考虑到个人方便,自己也仅仅想重温语法,家里家外都可使用,决定搭建一下C++ IDE开发环境.记得N年前刚开始接触编程时,使用的是Visual C++6.0

  • nginx rtmp模块编译 arm版本的问题

    今天搞了一天,终于把nginx增加支持rtmp模块编译出来了,其中遇到了很多问题,记录下这篇文章,希望可以帮到遇到此类问题的同学. 一.准备工作: 1,下载nginx源码:wget http://nginx.org/download/nginx-1.20.2.tar.gz 2,下载依赖库libpcre.a源码:wget http://ftp.cs.stanford.edu/pub/exim/pcre/pcre-8.39.tar.gz 3,下载依赖库libz.a源码: wget https://d

  • nginx rtmp模块编译 arm版本的问题

    目录 一.准备工作: 二.源码编译 1,configure 配置 2,编译错误 三.目标板上执行 今天搞了一天,终于把nginx增加支持rtmp模块编译出来了,其中遇到了很多问题,记录下这篇文章,希望可以帮到遇到此类问题的同学. 一.准备工作: 1,下载nginx源码:wget http://xiazai.jb51.net/202112/yuanma/nginx_jb51.rar 2,下载依赖库libpcre.a源码:wget http://ftp.cs.stanford.edu/pub/exi

随机推荐