问题产生
之前配置c/c++的时候脑袋一团浆糊,也不知道从哪下的一个最后编辑时间为13年的perl,并且在c_cpp_properties.json
里、环境变量里都用的这个。
当遇到
to_string was not declared in this scope
试了非常多的方法:
- 什么在code compile里加
-std=c++11
,这是上篇文章就解决的,对这个新问题显然没起到作用(关于标准问题详见上篇文章) - 又或者使用
std::to_string
然后收到以下报错:to_string is not a member of std
反复试了多次,发现均行不通后,转向了DEV-C++
,一通操作猛如虎,结果找遍了tool
没找到怎么调整为c++11
标准,同时疲惫地不想再搜了。但在过程中,发现配置的是mingw
,甚至年少地因为对相对路径绝对路径的无知,将其与DEV-C++
放在同一个文件夹里。
此时,我开始怀疑起我的vscode所使用的的g++
版本,接下来就是发现开头所说的,发现编译路径里那个诡异的perl
以及这种不中用的g++
。
最终的解决方案
删掉了perl
(落后版)的所有文件,将mingw
的相关文件都直接拷贝到盘中(例:D:\mingw
,尽量让路径中别出现中文,保平安),然后编辑环境变量(编辑path
,新建add
一条(例:)d:\mingw\bin
),然后电脑重启;
接着vscode方未必结束报错,修改c_cpp_properties.json
,将原来使用perl
的改为现在mingw\bin
的绝对路径即可。