Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Visual Studio Code gives me "#include error detected" for C

I have started to learn c, I tried to use it with VS Code, but the #include < stdio.h> is highlighted in green with this error message:

#include errors detected. Please update your includePath. IntelliSense features for this translation unit
(C:\Users\Jerlam\Desktop\C\training\dweight.c) will be provided by the
Tag Parser.

could not open source file "stdio.h" (no directories in search list)

I have seen some topics about this issue, but none of them helped me to fix it.
Here is my c_cpp_properties.json file in which I have to add the path (of stdio). In fact the documentation about it is absolutely not beginner friendly.

    {
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:/Program Files (x86)/Windows Kits/10/Include/10.0.10240.0/ucrt"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
        ],
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

I have added manually this path:

"C:/Program Files (x86)/Windows Kits/10/Include/10.0.10240.0/ucrt"

because it contains the stdio.h header.

What shall I do? Thanks.

like image 852
Jerlam Avatar asked Aug 16 '18 18:08

Jerlam


3 Answers

I have found the solution thanks to this video on how to Set Up C++ Development With Visual Studio Code on Windows 10 (VS Code).

  1. I launched MinGW Installation Manager and installed all the package from the Basic Setup.

  2. I added the path of the gcc compiler to my system´s environment variables: C:\MinGW\bin, in which is the gcc.exe.

  3. I opened the c_cpp_properties.json file and added different paths for the folders I want to include. So now my c_cpp_properties.json file looks like this:

    {
        "configurations": [{
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.10240.0\\ucrt",
                "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\include",
                "C:\\MinGW\\lib\\gcc\\mingw32\\6.3.0",
                "C:\\MinGW\\lib\\gcc\\mingw32\\6.3.0\\include\\c++",
                "C:\\MinGW\\lib\\gcc\\mingw32\\6.3.0\\include"
            ],
            "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
            "intelliSenseMode": "clang-x64"
        }],
        "version": 4
    }
    
like image 110
Jerlam Avatar answered Nov 02 '22 17:11

Jerlam


Worked for me, running VSCode on Windows 10.

  1. Go to your project folder
  2. Open .vscode subfolder
  3. Go to c_cpp_properties.json
  4. Replace everything you have in that file with this code:
{
"configurations": [
    {
        "name": "MinGW",

        "includePath": [
            "${workspaceFolder}"
        ],
        "defines": [
            "_DEBUG",
            "UNICODE",
            "_UNICODE"
        ],
        "intelliSenseMode": "clang-x64",
        "browse": {
            "path": [
                "${workspaceFolder}"
            ],
            "limitSymbolsToIncludedHeaders": true,
            "databaseFilename": ""
        },
        "cStandard": "c11",
        "cppStandard": "c++17"
    }
],
"version": 4
}
  1. Save and restart the IDE.
like image 2
Dennis Kozevnikoff Avatar answered Nov 02 '22 16:11

Dennis Kozevnikoff


(Updated the answer)

Anyone else coming here, note VS Code keeps caches. If even after making changes to your c_cpp_properties.json the error doesn't go away. Try deleting the cache for your workspace (aka directory).

For,

Windows: C:\Users\<YOUR_USER_NAME>\AppData\Roaming\Code\CachedData\*

Linux:

like image 2
Grinch _ Avatar answered Nov 02 '22 17:11

Grinch _