c_cpp_properties.json中的includePath在VSC代码中不起作用
我在Ubuntu 18.04上使用带有C/C++扩展的VSCode 我试图包含gmodule.h,它会在主文件的第2行第10个字符上引发错误c_cpp_properties.json中的includePath在VSC代码中不起作用,c,visual-studio-code,include-path,C,Visual Studio Code,Include Path,我在Ubuntu 18.04上使用带有C/C++扩展的VSCode 我试图包含gmodule.h,它会在主文件的第2行第10个字符上引发错误gmodule.h:没有这样的文件或目录 因此,问题在于gmodule.h不在/usr/include中,而是在/usr/include/glib-2.0中。意识到这一点,我将此文件夹添加到c_cpp_properties.json中的includePath变量中。但是,它仍然会引发相同的错误 当使用#include而不是#include时,它确实有效,但这
gmodule.h:没有这样的文件或目录
因此,问题在于gmodule.h不在/usr/include中,而是在/usr/include/glib-2.0中。意识到这一点,我将此文件夹添加到c_cpp_properties.json中的includePath变量中。但是,它仍然会引发相同的错误
当使用#include
而不是#include
时,它确实有效,但这只会将问题转移到gmodule.h本身,因为glib-2.0文件夹中的其他include在gmodule.h内部仍然不起作用
总而言之,问题是添加到c_cpp_properties.json中的includePath不会改变任何东西,我想知道如何实现这一点,因为我想使用gmodule
c_cpp_properties.json:
{
"configurations": [
{
"name": "Linux",
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64",
"includePath": [
"/usr/include/glib-2.0/*"
]
}
],
"version": 4
}
现在,我只是尝试包含gmodule.h,但还没有对它做任何操作,所以这是我的主文件:
#include <stdio.h>
#include <gmodule.h>
int main() {
printf("hai\n");
return 0;
}
#包括
#包括
int main(){
printf(“hai\n”);
返回0;
}
c\u cpp\u properties.json
控制IDE中的intellisense解析包含文件的位置。IDE和构建任务是独立的,因此在VS代码中独立配置和操作
问题的解决方案是将include路径添加到tasks.json
文件中,如下所示:
“args”:[
“-g”,
“${file}”,
“-o”,
“${fileDirname}/${fileBasenameNoExtension}”,
“--包含目录=/usr/include/glib-2.0/”
],
我通过为glib
添加两条路径,成功地使IntelliSense工作,正如pkg config
报告的那样:
$pkg配置--cflags glib-2.0
-I/usr/include/glib-2.0-I/usr/lib/x86_64-linux-gnu/glib-2.0/include
.vscode/c_cpp_properties.json
{
“配置”:[
{
“名称”:“Linux”,
“包含路径”:[
“${workspaceFolder}/**”,
“/usr/include/glib-2.0/**”,
“/usr/lib/x86_64-linux-gnu/glib-2.0/include/**”
],
“定义”:[],
...
}
],
...
}
你试过用#include
代替吗?是的,我试过了,我甚至把结果放在了这篇文章中:“当使用#include代替#include时,它确实有效,但这只会将问题转移到gmodule.h本身,因为glib-2.0文件夹中的其他include在gmodule.h内部仍然不起作用。”你到底在哪里看到错误消息?考虑添加一个屏幕截图。另外,您是否尝试过从includePath
条目中删除/*
?是的,我已经尝试过了,我刚刚补充说错误发生在主文件的第2行,字符10感谢您的回答,帮助我解决了问题。在此之前,当我在c_cpp_properties.json中添加“includePath”时,我无法理解为什么会出现问题。这些答案帮助我更好地理解VSC代码和C程序。再次感谢