Jerlam
Jerlam

Reputation: 1101

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

I have started to learn c, I tried to use it with VSCode, 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.

Upvotes: 8

Views: 50063

Answers (5)

Koullis
Koullis

Reputation: 3

I use C in Ubuntu windows WSL. Here is my config for VSCcode to work:

{
    "configurations": [
        {
            "name": "WSL",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/lib/gcc/x86_64-linux-gnu/11/include",
                "/usr/local/include",
                "/usr/include/x86_64-linux-gnu",
                "/usr/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "intelliSenseMode": "gcc-x64",
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "gnu++14",
            "browse": {
                "path": [
                    "${workspaceFolder}/**",
                    "/usr/lib/gcc/x86_64-linux-gnu/11/include",
                    "/usr/local/include",
                    "/usr/include/x86_64-linux-gnu",
                    "/usr/include"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            }
        }
    ],
    "version": 4
}

Upvotes: 0

Jerlam
Jerlam

Reputation: 1101

I 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
    }
    

Upvotes: 9

Insane
Insane

Reputation: 41

(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:

Upvotes: 3

Dennis Kozevnikoff
Dennis Kozevnikoff

Reputation: 2277

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.

Upvotes: 2

Sampat Aheer
Sampat Aheer

Reputation: 73

It may happen if you have visual studio and code together on your pc. Just try to uninstall all C and C++ extensions from apps list, visual studio and visual studio code on your pc then restart and again install the vs code. I wasted my whole day behind it but no JSON file did work for me. you only need to put the MinGW-64/bin path in JSON file on vs code where ever you have installed the MinGW-64 on your pc. if you do not have MinGW on your pc I am putting a video link

https://www.youtube.com/watch?v=0HD0pqVtsmw

Upvotes: 0

Related Questions