文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

VScode中C++头文件问题的终极解决方法详析

2022-11-13 14:46

关注

引言

之前在配置VScode环境的时候,按照网上的文章配置,总是找不到头文件,搜索解决方案,都是千篇一律,没有说到重点。在此详细解释一下。

局部配置全局配置傻傻分不清楚

网上很多文章都在讲一个配置文件c_cpp_properties.json,但是有些人不知道什么原因是找不到这个配置文件的。在扩展面板中,点击C++的设置进入的页面其实是通用设置页面,大概长这样:

这里只能看到"在settings.json中编辑"的选项,无论怎么写,都不可能生效,因为真正的配置文件在c_cpp_properties.json中。settings.json文件中的都是全局的一些默认配置。比如说,我配置完之后是这样的:

//全局的settings.json
{
"C_Cpp.default.compilerPath": "C:/MinGW/bin/g++.exe",
    "C_Cpp.default.includePath": [
        "${workspaceFolder}/**",
        "C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
        "C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
        "C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
        "C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
        "C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
        "C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"
    ],
    "C_Cpp.default.intelliSenseMode": "linux-gcc-x64",
}

这样的配置本身没有错,但是最关键的问题在于,如果之前已经用vscode打开过文件夹,并且在文件夹中自动生成了.vscode配置文件夹,那么大概率会自动生产一个c_cpp_properties.json配置文件,并且是不带默认配置的,大概是这样:

//.vscode文件夹局部的配置c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**" //问题就出在这一行
            ],
            "defines": [],
            "compilerPath": "C:/MinGW/bin/g++.exe", 
            "cStandard": "c11",
            "cppStandard": "c++11",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

如果.vscode局部的配置文件没有显示的声明c_cpp插件的includePath那么相当于只有这一行"${workspaceFolder}"的配置生效,也就是只在当前工作目录下查找头文件,那能找到才怪咧。

因此,要特别注意,如果发现include头文件出现问题,首先看一下.vscode目录下的配置是否正确,然后再去看全局的配置。

这种情况的解决方案很简单,因为全局的default配置已经写好了include的路径,只需要在局部的配置这儿增加一行"${default}"即可:

//.vscode文件夹局部的配置c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "${default}" //只需要加这一行,就是这么简单
            ],
            "defines": [],
            "compilerPath": "C:/MinGW/bin/g++.exe", 
            "cStandard": "c11",
            "cppStandard": "c++11",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

"${default}"的效果,就是让局部配置去调用全局配置中的默认选项,也就是全局settings.json中的那些配置。

一些有帮助的信息

  1. 不要直接在sourceforge下载mingw64,很大概率你下载到的是源码包,需要在特定环境下之后才能用,在源码包里是找不到g++.exe之类的东西的,不要浪费时间直接去找网盘下编译好的build。
  2. 解压build之后,通常放在C盘根目录下,然后找到系统高级设置,配置环境变量。要注意,如果配置的是系统环境变量而非用户环境变量时,需要注销后生效,不需要重启电脑。
  3. 具体includePath是什么,在配置好环境变量之后,也就是CMD中输入gcc -v可以看到正常输出之后,在CMD中输入gcc -v -E -x c++ -命令,就可以列出所有的include路径,加上双引号之后就可以copy到对应的json配置中了。

总结

到此这篇关于VScode中C++头文件问题终极解决方法的文章就介绍到这了,更多相关VScode C++头文件问题解决内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯