在这里插入图片描述

1. 环境声明

即使是同一个报错,在不同的环境中,报错原因、解决方法都是不同的,本文只能解决跟我类似的问题,如果你发现你跟我遇到的问题不太一样,建议寻找其他解法。

必须要吐槽的是:在 CSDN 上搜索这个问题,你可能会看到前几个访问量几万的博客写的都差不多,要你下载一堆东西,还要配置环境变量,我也不敢说他们是错的,但他们的解决方法显然不适用于我。

因为我遇到这个问题,明显是因为 Linux 云服务器的问题,而不是 Windows 本地的问题,我本地 Visual Studio 2022 跑的一点问题都没有,而且我是连接远程服务器写的代码,跟本地压根没有半毛钱关系啊!

好了不说废话了,下面来看看我的问题:

在我使用 VSCode 连接云端 Ubuntu 服务器,写了一些 C++ 代码的时候,所有头文件均爆红,VSCode 提示 检测到 #include 错误。请更新 includePath。 但是写 C 的时候就没事,即使 C 和 C++ 代码使用的是相同的头文件,如:#include <unistd.h> ,在 C 文件里一点事都没有,在 C++ 中就报错。

2. 解决过程

  1. 我想起来这台(ubuntu)服务器好像还没安装 g++,于是使用命令:

    sudo apt install g++
    

    进行安装(CentOS 可能要使用 yum),但是安装后报错依旧;(其实主要问题就是这个)

  2. 于是我打开 CSDN 进行搜索,发现不太对劲,又关了;

  3. 然后我又去问了 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
    
  4. 所以我们只需要在服务器上安装 g++,然后重启 VSCode,让他自动生成这个文件就行了。

  5. 就是这么简单,不需要在电脑上下载奇怪的东西,也不需要乱改环境变量,因为这是服务器的问题,而不是自己电脑的问题。


如果本文未能解决你的问题,欢迎在评论区留言讨论

END
Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐