当前位置: 首页 > news >正文

VSCode/VS2019#include头文件时找不到头文件:我的解决方法

0.前言 

1.在学习了Linux之后,我平常大部分都使用本地的XShell或者VSCode连接远程云服务器写代码,CentOS的包管理器为我省去了不少繁琐的事情,今天使用vscode打开本地目录想写点代码发现#include头文件后,下方出现了波浪线:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <fcntl.h>

前面介绍VSCode的解决方法,最后介绍VS2019的解决方法。 

2.我的解决方法VSCode:

依次点击并打开。

你将来到"settings.json",这是一个全局的默认配置文件。

如果你没有下面的内容,请按照格式添加:
 

{"C_Cpp.default.compilerPath":"E:\\mingw_bulids\\mingw64\bin","C_Cpp.default.includePath": ["E:\\mingw_bulids\\mingw64\\include","D:\\Users\\polyspace\\verifier\\cxx\\include","E:\\mingw_bulids\\mingw64\\x86_64-w64-mingw32\\include"]
}

逐个解释: 

C_Cpp.default.compilerPath:

  • 指定了 C/C++ 编译器的路径,我使用的是 编译器路径如上。

C_Cpp.default.includePath:

  • 指定了 C/C++ 编译器查找头文件的路径。

当然了,我的settings.json中还有其他配置项,配置编辑器的主题、字体、代码补全等。这都不重要了。


问题是你怎么知道你的编译器路径以及查找头文件的路径呢?

我是这样做的:直接在everything软件中搜索出现红色波浪线的头文件,比如unistd.h这个:
搜索结果如下:

我找到了当初安装它们的路径。

此时,右键该文件名称,“打开路径”。

然后你会发现,这些头文件安静地躺在这个路径下,请你将该路径复制,并添加在"C_Cpp.default.includePath":后面,值得注意的两个点:

第一:由于转义字符的存在,你需要在每个'\'后多写一个'\'。

第二:如果你的"C_Cpp.default.includePath"后面要写多个路径,请用 [ ]将它们包起来,每个之间用逗号分割,且每个路径用英文双引号引起来。

"C_Cpp.default.compilerPath"写面填什么与"C_Cpp.default.includePath"方法类似,不必多言。


现在,请你关闭这个全局的settings.json来到你的工作区下,打开如下文件:

你将看到如下文件,我先解释一下各项含义:

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**","${default}","E:/mingw_bulids/mingw64/include/x86_64-linux-gnu"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "E:\\mingw_bulids\\mingw64\\bin\\g++.exe","cStandard": "c17","cppStandard": "gnu++17","intelliSenseMode": "windows-gcc-x64"}],"version": 4
}

各项含义:

  • "compilerPath": "E:\\mingw_bulids\\mingw64\\bin\\g++.exe",指定了编译器的路径。
  •  "cStandard": "c17",和 "cppStandard": "gnu++17"是C和C++的标准。

  •  "includePath": ["${workspaceFolder}/**",]表示搜索当前工作区下的所有文件夹,一般用来包含自己写的.h头文件。

  • "${default}":表示使用编译器默认的包含路径。他就是include全局settings.json里头文件的路径的。大部分读者可能都没有添加这个路径。

  • "E:/mingw_bulids/mingw64/include/x86_64-linux-gnu":这个是我要使用的一些Linux下头文件的路径。(读者们可能不需要这个,你们完全可以拷贝到全局settings.json文件中我们include的path下面去,这里只需要添加"${default}"就行了)。

总而言之,读者们可能需要改动或者添加的如下:

 具体根据自己情况即可。另外你们如果是初次配置,可能会找不到.vscode下的c_cpp_properties,请参考其他回答,这个我不再赘述。

行文至此,相信读者问题应该得到了解决。


3.我的解决方法VS2019: 

点击项目,再点击属性。

将上文我们在电脑中共找到的路径添加在“附加包含目录”中,并用英文分号结尾。点击确定。


参考链接:链接 链接


http://www.mrgr.cn/news/35836.html

相关文章:

  • java:继承题练习
  • Linux软件包管理与Vim编辑器使用指南
  • SpringBoot(八)使用AES库对字符串进行加密解密
  • 用K8S部署nginx负载均衡
  • FP独立站引流革命:GG斗篷技术解锁流量新策略
  • 安卓aab包的安装教程,附带adb环境的配置
  • 大数据平台符合信创(CDH国产化代替)详细方案(企业内部不外传方案)
  • Redisearch 入门指南构建高性能搜索应用
  • 国内可用ChatGPT-4中文镜像网站整理汇总【持续更新】
  • 第300篇文章,第365天
  • 他是内娱最“打脸”前夫:拿全球大奖,成何超琼好友,纵横名流圈
  • 初识 C 语言(一)
  • 《 Spring Boot实战:优雅构建责任链模式投诉处理业务》
  • Java 反射体系
  • 【伺服】Servo入坑学习记录①
  • 图解Transformer就这30页PPT,你们真不看啊
  • 双端搭建个人博客
  • Vue3 tsx文件中如何实现页面跳转
  • sql server 官方学习网站
  • vue3腾讯云实时音视频通话 ui集成方案TUIcallkit
  • 编码器分辨率、精度和重复精度的定义
  • 线性判别分析 (LDA)中目标函数的每个部分的具体说明
  • 【P1320 压缩技术(续集版)】
  • 优化理论及应用精解【11】
  • Prompt输出限制怎么写?用CCoT限制输出长度的推理,大幅提高LLM准确性
  • 在pycharm中怎样调试HTML网页程序