这次的问题起源于我用容器array时需要包含头文件。
而刚刚好用到的容器array是C++11中新加入std库的,但是我的MinGw版本太低,出现了找不到库的情况。遂将自己的MinGw升级到了最新版本,此时问题出现,不知怎么的运行后报错了

报错如下:

PS D:\Work> cd "d:\Work" ; if ($?) { gcc ok.cpp -o ok.exe -std=c++11 -Wall -lm } ; if ($?) { ./ok.exe }
C:\Users\Dylan\AppData\Local\Temp\ccJuQfKx.o:ok.cpp:(.text+0x21): undefined reference to `std::ostream::operator<<(int)'
C:\Users\Dylan\AppData\Local\Temp\ccJuQfKx.o:ok.cpp:(.text+0x40): undefined reference to `std::ios_base::Init::~Init()'
C:\Users\Dylan\AppData\Local\Temp\ccJuQfKx.o:ok.cpp:(.text+0x70): undefined reference to `std::ios_base::Init::Init()'
C:\Users\Dylan\AppData\Local\Temp\ccJuQfKx.o:ok.cpp:(.rdata$.refptr._ZSt4cout[.refptr._ZSt4cout]+0x0): undefined reference to `std::cout'
collect2.exe: error: ld returned 1 exit status

显然是编译器没找到对应的库

花费大量的时间找了很多办法,包括但不限于大幅修改了tasks.json,launch.json,c_cpp_properties.json,setting.json等文件,无果。

偶然了解到C++用g++进行编译会更好,用gcc的话gcc会无法链接到库,所以出现了上方的报错,但是上面几个文件的参数全都调成了g++的路径,确认无误了还是跑不动。

于是尝试调试:

#include <iostream>
#include <array>
#include <cstring>
using namespace std;
int main()
{array<int,5>arr;arr[1]=2;cout<<arr[1];return 0;
}

结果如下:

PS D:\Work>  & 'c:\Users\Dylan\.vscode\extensions\ms-vscode.cpptools-1.1.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-kkr4f2fp.y4m' '--stdout=Microsoft-MIEngine-Out-oqst5aks.rig' '--stderr=Microsoft-MIEngine-Error-wamcvkqu.ev0' '--pid=Microsoft-MIEngine-Pid-sbfykvax.bpj' '--dbgExe=D:\MinGw\bin\gdb.exe' '--interpreter=mi'```
2

神奇的是居然跑动了,那么就是说gdb是被正确地调用了的
又徒劳了半天之后
终于发现报错中的细节

PS D:\Work> cd "d:\Work" ; if ($?) { gcc ok.cpp -o ok.exe -std=c++11 -Wall -lm } ; if ($?) { ./ok.exe }
//上方的"gcc"有大问题

跑的仍然是gcc,一番思索之后,我想既然是用code runner插件跑的,那么就尝试下在code runner的配置文件中寻找答案。抱着最后一丝希望,我找到配置文件一点开就发现了抓眼的英文字母
将其改为g++后再跑这次因为方向走错了,导致浪费了大量时间…

总之还是要细心,要在问题的基础上寻找问题的根源,方向走错了会白费大量时间,还会打击信心,但不论如何,我又可以继续开心地码起来了…

记一次升级了编译器后VSCode中产生的问题相关推荐

  1. 记一次升级node版本后,运行原vue项目报错问题解决方法

    记一次升级node版本后,运行原vue项目报错问题解决方法 参考文章: (1)记一次升级node版本后,运行原vue项目报错问题解决方法 (2)https://www.cnblogs.com/happ ...

  2. 升级golang版本导致vscode中golang没有代码提示问题处理

    2019独角兽企业重金招聘Python工程师标准>>> 上半年安装了vscode中golang的插件,经过折腾代码提示这些都好了,但当时goland还可以用,就放弃了vscode来编 ...

  3. vscode中jsx中没有html语法提示,不能自动补全的解决办法

    学习React遇到的一个编译器问题--vscode中写jsx没有html语法提示的 如下图所示,当我们输入一个div,编辑器并没有为我们提示语法. 解决办法: 打开vscode设置,搜索include ...

  4. keil5工程 AC5 编译器升级 AC6编译器

    keil5工程 AC5 编译器升级 AC6编译器 1.概述 2.移植 1.概述 传统keil mdk的编译速度远远落后于IAR,但自从keil新版发布之后,AC6编译器要超过了IAR的编译速度,接下来 ...

  5. VSCode中,新建js文件中编译器自带jQuery提示失效的解决方法

    VSCode中,新建js文件中编译器自带jQuery提示失效的解决方法 在VSCode中,新建js文件可能会发生VSCode自带的jQuery提示引起失效,如下图 在HTML文件中进行编辑,<s ...

  6. Atitit.提升 升级类库框架后的api代码兼容性设计指南

    Atitit.提升 升级类库框架后的api代码兼容性设计指南 1. 增加api直接增加,版本号在注释上面增加1 2. 废弃api,使用主见@dep1 3. 修改api,1 4. 修改依赖import, ...

  7. 使用webpack打包后,vscode中vue代码变白色的解决办法

    使用webpack打包后,vscode中vue代码变白色的解决办法 卸载vetur,重装vetur

  8. 升级10.11后使用CocoaPod出现-bash: pod: command not found 解决办法

    升级10.11后使用CocoaPod出现-bash: pod: command not found 解决办法 升级10.11后,运行pod命令出现: -bash: pod: command not f ...

  9. macbookpro升级后打不开eclipse_维修分享——面容坏升级iOS13系统后 导致前后摄像头都打不开...

    最近搜狗CEO王小川在微博上吐槽说:手机升级iOS13系统后,导致前后摄像头打不开.我这正好也碰到了一样的故障.经过研究,总结出导致的原因和维修方法分享给大家. 首先和大家科普下,面容的组成部分 环境 ...

最新文章

  1. php preg_replace 正则替换图片路径
  2. JavaScript 笔记(2) -- 类型转换 正则表达 变量提升 表单验证
  3. 了解select模型的六大注意点
  4. cmd 删除文件夹_永远不要碰的5个macOS文件夹及原因
  5. 《每日一题》738. Monotone Increasing Digits 单调递增的数字
  6. python参数类型_Python 参数类型和参数匹配模型
  7. java猜数字小游戏_Java实现简单猜数字小游戏
  8. 【Eclipse】eclipse在线安装反编译插件
  9. 南工院C语言试卷答案,南工院11-12-1C期末B试卷 附答案.doc
  10. 【嵌入式Linux】嵌入式Linux应用开发基础知识之输入系统应用编程
  11. Unity Editor下改变场景里prefab的参数后保存时注意点
  12. 员工邮箱能收不能发的解决方法
  13. [微信小程序开发] 用wx.navigateTo方法跳转到tabBar中被定义了的页面将无法跳转
  14. 查看SVN当前登录用户
  15. 程序员首选编程电脑【火爆来袭】
  16. Android 10 低内存应用白名单和应用保活
  17. 画坦克__线程__V1__第一种方法创造线程
  18. 三、vue3--生命周期、Hook函数、 toRef和toRefs、其他的组合式API
  19. Qt开发经验总结之武林秘籍
  20. HCIE课程笔记18-局域网二层技术

热门文章

  1. pbx_functions.c:699 ast_func_write: Function DENOISE not registered
  2. error: C2039: “staticMetaObject”: 不是“QGraphicsItem”的成员
  3. 程序员修炼之道-从小工到专家 读后感
  4. docker进入容器出现bash-4.2#解决办法
  5. Fatal message conversion error;message rejected;it will be dropped or routed to a dead letter exchan
  6. c++ 编译DLL和使用DLL
  7. IdentityServer4实现Token登录以及权限控制
  8. 距离感应器实现锁频教程
  9. 通话距离感应实现源码
  10. 如何从0开始在鸿蒙OS中制作一个APP!