Fedora 29配置 Vscode 出现#include errors detected. Please update your includePath. IntelliSense

问题描述: Linux(此处为Fedora 29)下vscode配置C语言或者C++开发环境后,编写代码,在头文件上有绿色波浪线,并报错#include errors detected. Please update your includePath. IntelliSense features for this translation unit (/home/flanwu/Vscode/C++/test.cpp) will be provided by the Tag Parser.cannot open source file “bits/c++config.h” (dependency of “iostream”)

截图如下

在这里插入图片描述

默认c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}
在尝试了N多种方法后,基本上都是围绕c_cpp_properties.json文件中库的引用而展开的,我试过后,都没用,最后在千辛万苦的查找后,我怀疑是我文件导入问题,我查看了vscode的官方解决办法,就是下面连接中的,不幸的是,是mac配置
官方解决办法
解决方法:我尝试过,因为C库是在/usr/include/下面,如

在这里插入图片描述
于是我尝试添加库来实现

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
            	"/usr/include/",
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}
但是仍然没有解决问题。这时候,我冷静想了下,官网的格式有问题??,库还是没有导入,此时我看到下面"${workspaceFolder}/**"这个,我突然明白了,如果格式相同,应该目录导入是这样的
"/usr/include/**",
而不是这样
"/usr/include/"

更改后,终于解决了问题.

最后附上完整c_cpp_properties.json文件配置
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "/usr/include/**",
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}
  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在Linux下编译包含`<dns_sd.h>`、`<stdlib.h>`和`<string.h>`头文件的`test.c`文件,你需要先确保已经安装了相关的库,通常是Bonjour(也称为DNS-SD,即DNS Service Discovery)和必要的C语言开发工具。以下是一个基本的步骤: 1. 安装依赖库: - 对于Bonjour库(mDNSResponder),在Debian/Ubuntu系统中,你可以使用`libavahi-client-dev`或`libdns_sd-dev`(取决于你的系统版本)。在Fedora/CentOS/RHEL系列表示为`dnsmasq-devel`。 - 在源码管理下安装(如从Git clone库),确保按照文档配置并编译库。 2. 设置编译环境: - 首先,打开终端,确保你有一个C编译器,如GCC(g++或gcc)。 - 使用`mkdir build`创建一个新目录,然后进入这个目录,`cd build`。 3. 创建Makefile(如果尚未存在): ```bash nano Makefile ``` 在Makefile中添加类似的内容: ```makefile CC=gcc CFLAGS=-I/usr/include/dns_sd -std=c99 all: test test: test.o $(CC) $(CFLAGS) -o test test.o test.o: test.c $(CC) $(CFLAGS) -c test.c clean: rm -f test test.o ``` 这里假设`/usr/include/dns_sd`是你包含`<dns_sd.h>`头文件的目录,实际路径可能不同,需要根据你的系统调整。 4. 编译并链接: ```bash make ``` 如果一切顺利,`make`命令会编译你的代码并生成可执行文件`test`。 5. 测试: ```bash ./test ``` 运行`test`文件,查看是否能正常运行并检查是否有DNS-SD相关的功能。 相关问题: 1. 如何确定需要的库头文件位置? 2. 如果编译时遇到头文件找不到错误,应该怎么做? 3. 如果没有安装所需的库,如何手动编译并安装Bonjour?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值