文章目录
- 1. 环境声明
- 2. 解决过程
1. 环境声明
即使是同一个报错,在不同的环境中,报错原因、解决方法都是不同的,本文只能解决跟我类似的问题,如果你发现你跟我遇到的问题不太一样,建议寻找其他解法。
必须要吐槽的是:在 CSDN 上搜索这个问题,你可能会看到前几个访问量几万的博客写的都差不多,要你下载一堆东西,还要配置环境变量,我也不敢说他们是错的,但他们的解决方法显然不适用于我。
因为我遇到这个问题,明显是因为 Linux 云服务器的问题,而不是 Windows 本地的问题,我本地 Visual Studio 2022 跑的一点问题都没有,而且我是连接远程服务器写的代码,跟本地压根没有半毛钱关系啊!
好了不说废话了,下面来看看我的问题:
在我使用 VSCode 连接云端 Ubuntu 服务器,写了一些 C++ 代码的时候,所有头文件均爆红,VSCode 提示 检测到 #include 错误。请更新 includePath。
但是写 C 的时候就没事,即使 C 和 C++ 代码使用的是相同的头文件,如:#include <unistd.h>
,在 C 文件里一点事都没有,在 C++ 中就报错。
2. 解决过程
-
我想起来这台(ubuntu)服务器好像还没安装 g++,于是使用命令:
sudo apt install g++
进行安装(CentOS 可能要使用 yum),但是安装后报错依旧;(其实主要问题就是这个)
-
于是我打开 CSDN 进行搜索,发现不太对劲,又关了;
-
然后我又去问了 ChatGPT,给出如下方法:
ChatGPT 说的已经很接近了,就是因为没有安装 g++,项目目录中缺少了
.vscode
文件夹和c_cpp_properties.json
文件,这个应该是 VSCode 自动生成的,并且写 C 的时候没有这玩意,写 C++ 的时候才会有,如果你的服务器中没有安装 g++,VSCode 就不知道去哪里找头文件,所以会报错(个人分析不一定准确)。ubuntu@VM-20-5-ubuntu:~/Linux/test_5_3$ ll total 24 drwxrwxr-x 5 ubuntu ubuntu 4096 May 4 15:29 ./ drwxrwxr-x 12 ubuntu ubuntu 4096 May 3 17:03 ../ drwxrwxr-x 2 ubuntu ubuntu 4096 May 4 15:24 NamedPipe/ -rw-rw-r-- 1 ubuntu ubuntu 884 May 3 17:18 test.c drwxrwxr-x 2 ubuntu ubuntu 4096 May 3 18:27 TestPipe/ drwxrwxr-x 2 ubuntu ubuntu 4096 May 4 15:29 .vscode/ # 查看是否缺少这个文件夹(在项目目录中) ubuntu@VM-20-5-ubuntu:~/Linux/test_5_3$ tree .vscode/ # 查看文件结构 .vscode/ └── c_cpp_properties.json 0 directories, 1 file
-
所以我们只需要在服务器上安装 g++,然后重启 VSCode,让他自动生成这个文件就行了。
-
就是这么简单,不需要在电脑上下载奇怪的东西,也不需要乱改环境变量,因为这是服务器的问题,而不是自己电脑的问题。