Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 覆盖vscode C/C+中intelliSense的默认includePath+;_C++_C_Visual Studio Code_Libc - Fatal编程技术网

C++ 覆盖vscode C/C+中intelliSense的默认includePath+;

C++ 覆盖vscode C/C+中intelliSense的默认includePath+;,c++,c,visual-studio-code,libc,C++,C,Visual Studio Code,Libc,我正在尝试为一个C项目配置vscode intellisense,在这个项目中,我有一个自定义编译器,它使用标准库的“自己”实现(针对目标处理器进行了优化) 我可以成功地包括项目库,例如,#include指的是项目的正确具体实施 但是在#include的例子中,intellisense指向的是我的标准windows安装(C:\Program Files(x86)\windows Kits\10\include\10.0.18362.0\ucrt\string.h),而不是在C:/mLite/Me

我正在尝试为一个C项目配置vscode intellisense,在这个项目中,我有一个自定义编译器,它使用标准库的“自己”实现(针对目标处理器进行了优化)

我可以成功地包括项目库,例如,
#include
指的是项目的正确具体实施

但是在
#include
的例子中,intellisense指向的是我的标准windows安装(C:\Program Files(x86)\windows Kits\10\include\10.0.18362.0\ucrt\string.h),而不是在C:/mLite/MetaWare/arc/libs/inc/string.h中所需要的人

我在c_cpp_properties.json中包含了路径:

{
    "name": "arc",
    "includePath": [
        "${workspaceFolder}/**",
        "C:/MWLite/MetaWare/arc/**"
    ],
    "defines": [
        "_DEBUG",
        "UNICODE",
        "_UNICODE"
    ],
    "compilerPath": "C:/MWLite/MetaWare/arc/bin/gmake.exe",
    "cStandard": "c11",
    "cppStandard": "c++17",
    "intelliSenseMode": "gcc-x64"
}

如何“强制”intellisense首先查看libc的指定路径?

为什么
gmake
是您的编译器路径?如果您正确地为编译器设置了
compilerPath
,vscode应该可以从编译器中找出实际的包含路径,而不需要
includePath
(根据文档)。此外,如果您的目标是arduino,请查看@bolov yea,我看到了,但谢谢。我已经将gmake路径添加到了我的env变量中,但是vscode无法识别它,所以我将它添加到了compilerPath中(看起来还可以)。但问题不在于编译器(我从终端编译,将来可能会使用任务),而在于intellisense。至于Arduino,遗憾的是它不是,它实际上是一个使用arc proc:)的自定义控制器,我想了解完整的工具链并以良好的方式配置vscode。我的观点是,
gmake
不是编译器(它是一个构建系统)。如果将真正的编译器放入
compilerPath
(类似于
gcc我的自定义控制器构建
)并删除
includePath
,那么vscode应该能够获得编译器使用的真正include路径(假设它接受与gcc兼容的参数)。不管怎样,这只是我的猜测。但是值得一试。为什么
gmake
是您的编译器路径?如果您正确地为编译器设置了
compilerPath
,vscode应该可以从编译器中找出实际的包含路径,而不需要
includePath
(根据文档)。此外,如果您的目标是arduino,请查看@bolov yea,我看到了,但谢谢。我已经将gmake路径添加到了我的env变量中,但是vscode无法识别它,所以我将它添加到了compilerPath中(看起来还可以)。但问题不在于编译器(我从终端编译,将来可能会使用任务),而在于intellisense。至于Arduino,遗憾的是它不是,它实际上是一个使用arc proc:)的自定义控制器,我想了解完整的工具链并以良好的方式配置vscode。我的观点是,
gmake
不是编译器(它是一个构建系统)。如果将真正的编译器放入
compilerPath
(类似于
gcc我的自定义控制器构建
)并删除
includePath
,那么vscode应该能够获得编译器使用的真正include路径(假设它接受与gcc兼容的参数)。不管怎样,这只是我的猜测。不过值得一试。