I'm working in VSCode with the C/C++ extension on Ubuntu 18.04.
I'm trying to include gmodule.h and it raises the error gmodule.h: No such file or directory
on line 2, character 10 of the main file.
So, the problem lies with gmodule.h being not in /usr/include but in /usr/include/glib-2.0. Realizing this, I added this folder to the includePath variable in c_cpp_properties.json. However, it still raises the same error.
When using #include <glib-2.0/gmodule.h>
instead of #include <gmodule.h>
, it does work but this only shifts the problem to gmodule.h itself, as other includes that lie in the glib-2.0 folder still don't work inside of gmodule.h.
All in all, the problem is that add to the includePath in c_cpp_properties.json doesn't change anything and I want to know how to make this work, since I would like to use 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
}
for now I'm just trying to include gmodule.h and not do anything with it yet, so this is my main file:
#include <stdio.h>
#include <gmodule.h>
int main() {
printf("hai\n");
return 0;
}
The c_cpp_properties.json
controls, among other things, where intellisense in the IDE resolves include files. The IDE and the build tasks are independent things and as a result, configured and operate independently in VS Code.
The solution to your problem is to add the include path to your tasks.json
file, as follows:
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}",
"--include-directory=/usr/include/glib-2.0/"
],