Let's say this is my project.
file structure:
project_root |-- inc | |-- header.h |-- src | |-- helpers.c | |-- main.c header.h
#ifndef HEADER_H # define HEADER_H void func(void); #endif helpers.c
void func() { /* do something */ } main.c
#include "header.h" int main(void) { func(); return (0); } c_cpp_properties.json
{ "configurations": [ { "name": "Mac", "includePath": [ "${workspaceFolder}/inc", ], "defines": [], "macFrameworkPath": [ "/System/Library/Frameworks", "/Library/Frameworks" ], "compilerPath": "/usr/bin/gcc", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64" } ], "version": 4 } tasks.json
"tasks": [ { "type": "shell", "label": "gcc build active file", "command": "/usr/bin/gcc", "args": [ "-g", "-Wall", "-Werror", "-Wextra", "-o0" "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}", ], "options": { "cwd": "${workspaceFolder}" }, "group": { "kind": "build", "isDefault": true }, } ], "version": "2.0.0" } Issue
When I build my program in VSCode, I get the following error.
project_root/src/main.c:xx:xx: fatal error: 'header.h' file not found
Question
How do I avoid this error?
(How do I let the VSCode's build feature know where my header is?)
What I did already
I configured my include path(s) in c_cpp_properties.json, so I'm not getting the squiggles in main.c, where I include my header.
What's not going to be a solution for me
I don't want to write #include "../inc/header.h" in main.c, so this would not be a solution for me.