VScode配置C++时遇到的几个问题
文章目录
本文所有安装包链接:https://pan.baidu.com/s/1eBidCewdNHaGJfZwGkhR2A?pwd=6666
提取码:6666
基本安装
基本的安装步骤参考安装VSCode并配置C++编程环境.
- MinGW下载安装
参考Windows10安装MinGW-w64:https://sourceforge.net/projects/mingw-w64/files/ - 在VS商店里安装
C/C++,安装Code Runner.
1. #include出现波浪线:安装mingw并配置


改正:需要添加include文件位置
参考小白求助vscode配置问题,include老是波浪线。
下面这个位置作为头文件的查找位置,需要被加入到c_cpp_properties.json中。(c_cpp_properties.json 官方文档)
-
那么这个文件在哪里呢?首先鼠标滑过波浪线,选择快速修复,然后,编辑includePath,就会在左侧栏出现这个文件。如下:

在设置Intelligence界面选择编译器位置,

同时可以看到,左侧出现了一个.vscode文件夹,其中就有.json文件.

-
那么头文件的位置是如何确定的呢? 是安装MinGW时产生的。

注意,这里把\换成了/。


2. vscode exe does not exist
参考如何解决 vscode exe does not exist 的问题。新建一个文件夹 -> 新建.c文件,编辑代码 -> F5运行 -> C++(GDB/LLDB) -> 生成文档。
3. 调试时,数组不显示元素值:安装msys
VS code 2019 解决调试看不了数组,vector,set等容器内部值的问题(pretty-printting).
根据这篇博文,自己实践了一次,真正需要做的就两步.(尝试过题主的解答,后面出错了一些,所以记录一下)。在这里下载,我下载的是msys2-x86_64-20220319.exe版本
1.下载安装msys2完成后,运行msys2,将bin目录添加至环境变量,并且一定要确保,新的目录在老的编译器bin目录之前。
2.在launch中添加一个选项:
{
"configurations": [
{
//....
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
}
]
}
中文乱码
文件中注释乱码
我这个项目,本来是使用codeblocks创建和管理的。现在使用vscode打开,发现汉字乱码了。

修改编码格式以正常显示

此时,汉字能够正常显示:

重新设置编码格式
为了不每次都改,可以设置成utf-8格式来保存当前文件。这样,下次打开就不会乱码了。


控制台输出中文乱码
可以通过
chcp命令查看 cmd 的编码设置,GBK2312 的代码页编号是 936,然后改成utf-8的编码即可,
utf-8 对应的代码页编号是 65001 ,所以执行chcp 65001就可以把cmd的编码设置成uft-8了,


后续改进
F6即可运行的插件
参考windows 10 系统 vs code 编译运行和调试 C/C++.在VScode中安装C/C++ Compile Run,按F6即可运行代码,输出结果在终端中。(不推荐)
一保存{}就换行
VSCode 格式化 cpp 文件时配置左大括号不换行
点击:文件->首选项->设置,然后输入 C_Cpp: Clang_format_style
将第一个默认的 file 改为 {BasedOnStyle: Chromium, IndentWidth: 4}

关闭自动格式化
齿轮图标 -> 文本编辑器 -> 在setting.json中编辑 -> CTRL+F搜索"editor.formatOnSave" -> 设为false。
这样,保存或者切换窗口时,代码就不会自动格式化了。此时如要格式化,还可以右键:格式化文档 (快捷键Shift + Alt + f)
多文件时报错: undefined reference to `XXX’
在我的项目中,有3部分,结构如下:

各个文件的内容,如下:



运行时,报错:
[Running] cd “d:\CPPs\LeetCode\simple75_0218\main” && g++ main.cpp -o main && "d:\CPPs\LeetCode\simple75_0218\main"main
C:\Users\ItsMe\AppData\Local\Temp\ccKMrJ7M.o:main.cpp:(.text+0xe): undefined reference to `test_helloWorld()’
collect2.exe: error: ld returned 1 exit status
[Done] exited with code=1 in 0.265 seconds
解决办法
参考文章
差不多是这样子解决的,最终找到了这篇博客:C++函数分文件编写(VScode2021配置教程)。

同时感谢Windows下用VScode编写C++程序如何添加并应用自定义头文件,linux下VScode编写C++程序如何添加头文件和对应的CPP文件博文的探索。以及VSCode编译时提示 undefined reference to “XXX” 问题一列, vscode下编译告警“undefined reference”?三步教你如何解决。
安装项目生成插件

Ctrl+shift +p调起命令窗格,然后创建项目:
选择自己的项目的文件夹,该插件会在该文件夹下建立起一个新的结构。其中,仅src目录中有一个main.cpp,其他目录中都没有文件。


配置并编译
将自己的头文件放在include文件家中,将源文件放在src文件夹中(删除自动生成的main.cpp)。
然后,使用ctrl+shift+B来编译文件,它会像下面这样输出,并新建一个output/main.exe的可执行文件:
Executing task: powershell -c mingw32-make <
g++ -std=c++17 -Wall -Wextra -g -Iinclude -o output\main.exe src/main.o src/body.o -Llib
Executing ‘all’ complete!
终端将被任务重用,按任意键关闭。

运行
运行output/main.exe文件就可以得到运行结果。
首先使用**ctrl+`**唤起终端窗口,然后选择PS模式,效果如下:

运行结果:

解决方法2:安装cmake
VSCODE运行时找不到include文件夹的头文件
fatal error: XXX.h: No such file or directory
,main.cpp:3:10: fatal error: thread_pool.h: No such file or directory
3 | #include “thread_pool.h”
| ^~~~~~~~~~~~~~~
参考下一篇文章:VScode使用Cmake管理C++项目(多图)

