我在VSCode中工作,在Ubuntu18.04上使用C/C++扩展。
我试图包含gmodule.h,它会在主文件的第2行(字符10 )引发错误gmodule.h: No such file or directory
。
因此,问题在于gmodule.h不是在/usr/include中,而是在/usr/include/glib-2.0中。意识到这一点,我将这个文件夹添加到includePath变量中的c_cpp_properties.json中。但是,它仍然会引发相同的错误。
当使用#include <glib-2.0/gmodule.h>
而不是#include <gmodule.h>
时,它确实有效,但这只会将问题转移到gmodule.h本身,因为存在于glib-2.0文件夹中的其他包含仍然不能在gmodule.h中工作。
总之,问题是添加到includePath中的c_cpp_properties.json不会改变任何事情,我想知道如何使它工作,因为我想使用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;
}
发布于 2020-12-04 00:41:32
除其他外,c_cpp_properties.json
控件中的intellisense包括文件。IDE和构建任务是独立的,因此在VS代码中配置和操作是独立的。
解决问题的方法是将包含路径添加到tasks.json
文件中,如下所示:
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}",
"--include-directory=/usr/include/glib-2.0/"
],
发布于 2021-06-11 04:35:46
我通过为IntelliSense添加glib
的两条路径(由pkg-config
报告),成功地使pkg-config
工作
$ pkg-config --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
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include/glib-2.0/**",
"/usr/lib/x86_64-linux-gnu/glib-2.0/include/**"
],
"defines": [],
...
}
],
...
}
发布于 2022-01-24 16:09:07
对我来说,解决这个问题的方法是只键入没有/*或/**的文件夹路径,然后它会提示我如果我想为这个文件夹启用Intellisense,并且我允许它并且它工作了。
https://stackoverflow.com/questions/61079599
复制相似问题