Vscode-cpptools: Cannot find the struct in header files.

Created on 7 Dec 2018  Â·  10Comments  Â·  Source: microsoft/vscode-cpptools

Type: LanguageService

Describe the bug

  • OS and Version: Microsoft Windows [version 10.0.17763.167] & Ubuntu 18.04(WSL)
  • VS Code Version: 1.29.1 (user setup)
  • C/C++ Extension Version: 0.20.1

Like the screenshot below, I use the struct sigaction to declare a variable, the intelligence shows errors. Adding #include <bits/sigaction.h> will cause redefinition of ‘struct sigaction’. And I already add the signal.h to the include path.
How to solve this problem?

image

image

image

Language Service bug duplicate

Most helpful comment

I was practicing C on Ubuntu 18.04 and came into the same issue, but now I've temporary solved this issue by adding "_GNU_SOURCE" in "defines" list, like:
{ "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**" ], "defines": [ "__USE_POSIX", "_GNU_SOURCE" ], "compilerPath": "/usr/bin/gcc", "cStandard": "c99", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64" } ], "version": 4 }
Removing "_GNU_SOURCE" definition will reproduce this issue.

All 10 comments

I have the same setup and it isn't reproing for me. You should just set your compilerPath and don't add other system includes into your includePath. If you're still getting the error can you share your relevant settings and/or enable logging and provide the includes/defines that are output when you open a new C/C++ file?

c_cpp_properties.json

{
    "configurations": [
        {
                "name": "WSL",
                "intelliSenseMode": "clang-x64",
                "compilerPath": "/usr/bin/gcc",
                "includePath": [
                    "${workspaceRoot}",
                    "${localappdata}/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfs/usr/lib/gcc/x86_64-linux-gnu/7/include",
                    "${localappdata}/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfs/usr/local/include",
                    "${localappdata}/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfs/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed",
                    "${localappdata}/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfs/usr/include/x86_64-linux-gnu",
                    "${localappdata}/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfs/usr/include"
                ],
                "defines": [
                    "__linux__",
                    "__x86_64__"
                ],
                "browse": {
                    "path": [
                        "${localappdata}/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfs/usr/lib/gcc/x86_64-linux-gnu/7/include",
                        "${localappdata}/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfs/usr/local/include",
                        "${localappdata}/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfs/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed",
                        "${localappdata}/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfs/usr/include/x86_64-linux-gnu",
                        "${localappdata}/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfs/usr/include/*"
                    ],
                    "limitSymbolsToIncludedHeaders": true,
                    "databaseFilename": ""
                }
            }
    ],
    "version": 4
}

log

textDocument/codeAction
cpptools/activeDocumentChange
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
textDocument/documentSymbol
textDocument/codeAction
textDocument/hover
textDocument/documentHighlight
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
textDocument/codeAction
textDocument/didChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/completion
auto_complete::handle_completion: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c (1:12)
textDocument/codeAction
textDocument/documentSymbol
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
textDocument/codeAction
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
textDocument/didChange
cpptools/textEditorSelectionChange
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
textDocument/didSave
Checking for syntax errors: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c
queue_update_intellisense for files in tu of: C:\Users\xxx\Desktop\wsl_code\C\aa.c
  tag parsing file: C:\Users\xxx\Desktop\wsl_code\C\aa.c
sending 21 changes to server
errorSquiggles count: 0
textDocument/didChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/completion
auto_complete::handle_completion: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c (5:6)
Offering completion
sending 1 changes to server
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
textDocument/codeAction
textDocument/didChange
cpptools/textEditorSelectionChange
$/cancelRequest
textDocument/documentSymbol
Database safe to open
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/completion
auto_complete::handle_completion: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c (5:13)
Offering completion
sending 7 changes to server
textDocument/codeAction
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/completion
auto_complete::handle_completion: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c (5:21)
Offering completion
sending 8 changes to server
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/completion
auto_complete::handle_completion: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c (5:23)
Offering completion
sending 2 changes to server
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
textDocument/didSave
Checking for syntax errors: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c
queue_update_intellisense for files in tu of: C:\Users\xxx\Desktop\wsl_code\C\aa.c
  tag parsing file: C:\Users\xxx\Desktop\wsl_code\C\aa.c
sending 2 changes to server
errorSquiggles count: 1
textDocument/codeAction
textDocument/didChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/completion
auto_complete::handle_completion: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c (6:6)
Offering completion
sending 2 changes to server
textDocument/codeAction
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/completion
auto_complete::handle_completion: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c (6:8)
Offering completion
sending 2 changes to server
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/completion
auto_complete::handle_completion: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c (6:9)
Offering completion
sending 1 changes to server
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/completion
auto_complete::handle_completion: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c (6:10)
Offering completion
sending 1 changes to server
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
$/cancelRequest
textDocument/documentSymbol
Database safe to open
Checking for syntax errors: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c
queue_update_intellisense for files in tu of: C:\Users\xxx\Desktop\wsl_code\C\aa.c
  tag parsing file: C:\Users\xxx\Desktop\wsl_code\C\aa.c
sending 2 changes to server
errorSquiggles count: 3
textDocument/codeAction
Database safe to open
Checking for syntax errors: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c
queue_update_intellisense for files in tu of: C:\Users\xxx\Desktop\wsl_code\C\aa.c
errorSquiggles count: 3
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/didChange
cpptools/textEditorSelectionChange
textDocument/codeAction
textDocument/documentSymbol
textDocument/didChange
textDocument/didSave
Checking for syntax errors: file:///c%3A/Users/xxx/Desktop/wsl_code/C/aa.c
queue_update_intellisense for files in tu of: C:\Users\xxx\Desktop\wsl_code\C\aa.c
  tag parsing file: C:\Users\xxx\Desktop\wsl_code\C\aa.c
sending 4 changes to server
errorSquiggles count: 3
textDocument/codeAction
Database safe to open

You should remove the system includePath/browse.path/defines entries and just rely on the compilerPath. Also, the C_Cpp.loggingLevel needs to be set to Debug in order to show the valuable info.

We have plans to make this config experience easier, because too many people are hitting this same issue.

I found this document and create new configurations files but still getting errors.

{
    "configurations": [
        {
            "name": "WSL",
            "intelliSenseMode": "gcc-x64",
            "compilerPath": "/usr/bin/gcc",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "cStandard": "c11"
        }
    ],
    "version": 4
}

log

sending compilation args for C:\Users\X\Desktop\wsl_code\C\ab.c
  include: C:\Users\X\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\usr\lib\gcc\x86_64-linux-gnu\7\include
  include: C:\Users\X\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\usr\local\include
  include: C:\Users\X\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\usr\lib\gcc\x86_64-linux-gnu\7\include-fixed
  include: C:\Users\X\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\usr\include\x86_64-linux-gnu
  include: C:\Users\X\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\usr\include
  define: __STDC__=1
  define: __STDC_VERSION__=201112L
  define: __STDC_UTF_16__=1
  define: __STDC_UTF_32__=1
  define: __STDC_HOSTED__=1
  define: __GNUC__=7
  define: __GNUC_MINOR__=3
  define: __GNUC_PATCHLEVEL__=0
  define: __VERSION__="7.3.0"
  define: __ATOMIC_RELAXED=0
  define: __ATOMIC_SEQ_CST=5
  define: __ATOMIC_ACQUIRE=2
  define: __ATOMIC_RELEASE=3
  define: __ATOMIC_ACQ_REL=4
  define: __ATOMIC_CONSUME=1
  define: __pic__=2
  define: __PIC__=2
  define: __pie__=2
  define: __PIE__=2
  define: __FINITE_MATH_ONLY__=0
  define: _LP64=1
  define: __LP64__=1
  define: __SIZEOF_INT__=4
  define: __SIZEOF_LONG__=8
  define: __SIZEOF_LONG_LONG__=8
  define: __SIZEOF_SHORT__=2
  define: __SIZEOF_FLOAT__=4
  define: __SIZEOF_DOUBLE__=8
  define: __SIZEOF_LONG_DOUBLE__=16
  define: __SIZEOF_SIZE_T__=8
  define: __CHAR_BIT__=8
  define: __BIGGEST_ALIGNMENT__=16
  define: __ORDER_LITTLE_ENDIAN__=1234
  define: __ORDER_BIG_ENDIAN__=4321
  define: __ORDER_PDP_ENDIAN__=3412
  define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __SIZEOF_POINTER__=8
  define: __SIZE_TYPE__=long unsigned int
  define: __PTRDIFF_TYPE__=long int
  define: __WCHAR_TYPE__=int
  define: __WINT_TYPE__=unsigned int
  define: __INTMAX_TYPE__=long int
  define: __UINTMAX_TYPE__=long unsigned int
  define: __CHAR16_TYPE__=short unsigned int
  define: __CHAR32_TYPE__=unsigned int
  define: __SIG_ATOMIC_TYPE__=int
  define: __INT8_TYPE__=signed char
  define: __INT16_TYPE__=short int
  define: __INT32_TYPE__=int
  define: __INT64_TYPE__=long int
  define: __UINT8_TYPE__=unsigned char
  define: __UINT16_TYPE__=short unsigned int
  define: __UINT32_TYPE__=unsigned int
  define: __UINT64_TYPE__=long unsigned int
  define: __INT_LEAST8_TYPE__=signed char
  define: __INT_LEAST16_TYPE__=short int
  define: __INT_LEAST32_TYPE__=int
  define: __INT_LEAST64_TYPE__=long int
  define: __UINT_LEAST8_TYPE__=unsigned char
  define: __UINT_LEAST16_TYPE__=short unsigned int
  define: __UINT_LEAST32_TYPE__=unsigned int
  define: __UINT_LEAST64_TYPE__=long unsigned int
  define: __INT_FAST8_TYPE__=signed char
  define: __INT_FAST16_TYPE__=long int
  define: __INT_FAST32_TYPE__=long int
  define: __INT_FAST64_TYPE__=long int
  define: __UINT_FAST8_TYPE__=unsigned char
  define: __UINT_FAST16_TYPE__=long unsigned int
  define: __UINT_FAST32_TYPE__=long unsigned int
  define: __UINT_FAST64_TYPE__=long unsigned int
  define: __INTPTR_TYPE__=long int
  define: __UINTPTR_TYPE__=long unsigned int
  define: __has_include(STR)=__has_include__(STR)
  define: __has_include_next(STR)=__has_include_next__(STR)
  define: __GXX_ABI_VERSION=1011
  define: __SCHAR_MAX__=0x7f
  define: __SHRT_MAX__=0x7fff
  define: __INT_MAX__=0x7fffffff
  define: __LONG_MAX__=0x7fffffffffffffffL
  define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
  define: __WCHAR_MAX__=0x7fffffff
  define: __WCHAR_MIN__=(-__WCHAR_MAX__ - 1)
  define: __WINT_MAX__=0xffffffffU
  define: __WINT_MIN__=0U
  define: __PTRDIFF_MAX__=0x7fffffffffffffffL
  define: __SIZE_MAX__=0xffffffffffffffffUL
  define: __SCHAR_WIDTH__=8
  define: __SHRT_WIDTH__=16
  define: __INT_WIDTH__=32
  define: __LONG_WIDTH__=64
  define: __LONG_LONG_WIDTH__=64
  define: __WCHAR_WIDTH__=32
  define: __WINT_WIDTH__=32
  define: __PTRDIFF_WIDTH__=64
  define: __SIZE_WIDTH__=64
  define: __INTMAX_MAX__=0x7fffffffffffffffL
  define: __INTMAX_C(c)=c ## L
  define: __UINTMAX_MAX__=0xffffffffffffffffUL
  define: __UINTMAX_C(c)=c ## UL
  define: __INTMAX_WIDTH__=64
  define: __SIG_ATOMIC_MAX__=0x7fffffff
  define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
  define: __SIG_ATOMIC_WIDTH__=32
  define: __INT8_MAX__=0x7f
  define: __INT16_MAX__=0x7fff
  define: __INT32_MAX__=0x7fffffff
  define: __INT64_MAX__=0x7fffffffffffffffL
  define: __UINT8_MAX__=0xff
  define: __UINT16_MAX__=0xffff
  define: __UINT32_MAX__=0xffffffffU
  define: __UINT64_MAX__=0xffffffffffffffffUL
  define: __INT_LEAST8_MAX__=0x7f
  define: __INT8_C(c)=c
  define: __INT_LEAST8_WIDTH__=8
  define: __INT_LEAST16_MAX__=0x7fff
  define: __INT16_C(c)=c
  define: __INT_LEAST16_WIDTH__=16
  define: __INT_LEAST32_MAX__=0x7fffffff
  define: __INT32_C(c)=c
  define: __INT_LEAST32_WIDTH__=32
  define: __INT_LEAST64_MAX__=0x7fffffffffffffffL
  define: __INT64_C(c)=c ## L
  define: __INT_LEAST64_WIDTH__=64
  define: __UINT_LEAST8_MAX__=0xff
  define: __UINT8_C(c)=c
  define: __UINT_LEAST16_MAX__=0xffff
  define: __UINT16_C(c)=c
  define: __UINT_LEAST32_MAX__=0xffffffffU
  define: __UINT32_C(c)=c ## U
  define: __UINT_LEAST64_MAX__=0xffffffffffffffffUL
  define: __UINT64_C(c)=c ## UL
  define: __INT_FAST8_MAX__=0x7f
  define: __INT_FAST8_WIDTH__=8
  define: __INT_FAST16_MAX__=0x7fffffffffffffffL
  define: __INT_FAST16_WIDTH__=64
  define: __INT_FAST32_MAX__=0x7fffffffffffffffL
  define: __INT_FAST32_WIDTH__=64
  define: __INT_FAST64_MAX__=0x7fffffffffffffffL
  define: __INT_FAST64_WIDTH__=64
  define: __UINT_FAST8_MAX__=0xff
  define: __UINT_FAST16_MAX__=0xffffffffffffffffUL
  define: __UINT_FAST32_MAX__=0xffffffffffffffffUL
  define: __UINT_FAST64_MAX__=0xffffffffffffffffUL
  define: __INTPTR_MAX__=0x7fffffffffffffffL
  define: __INTPTR_WIDTH__=64
  define: __UINTPTR_MAX__=0xffffffffffffffffUL
  define: __GCC_IEC_559=2
  define: __GCC_IEC_559_COMPLEX=2
  define: __FLT_EVAL_METHOD__=0
  define: __FLT_EVAL_METHOD_TS_18661_3__=0
  define: __DEC_EVAL_METHOD__=2
  define: __FLT_RADIX__=2
  define: __FLT_MANT_DIG__=24
  define: __FLT_DIG__=6
  define: __FLT_MIN_EXP__=(-125)
  define: __FLT_MIN_10_EXP__=(-37)
  define: __FLT_MAX_EXP__=128
  define: __FLT_MAX_10_EXP__=38
  define: __FLT_DECIMAL_DIG__=9
  define: __FLT_MAX__=3.40282346638528859811704183484516925e+38F
  define: __FLT_MIN__=1.17549435082228750796873653722224568e-38F
  define: __FLT_EPSILON__=1.19209289550781250000000000000000000e-7F
  define: __FLT_DENORM_MIN__=1.40129846432481707092372958328991613e-45F
  define: __FLT_HAS_DENORM__=1
  define: __FLT_HAS_INFINITY__=1
  define: __FLT_HAS_QUIET_NAN__=1
  define: __DBL_MANT_DIG__=53
  define: __DBL_DIG__=15
  define: __DBL_MIN_EXP__=(-1021)
  define: __DBL_MIN_10_EXP__=(-307)
  define: __DBL_MAX_EXP__=1024
  define: __DBL_MAX_10_EXP__=308
  define: __DBL_DECIMAL_DIG__=17
  define: __DBL_MAX__=((double)1.79769313486231570814527423731704357e+308L)
  define: __DBL_MIN__=((double)2.22507385850720138309023271733240406e-308L)
  define: __DBL_EPSILON__=((double)2.22044604925031308084726333618164062e-16L)
  define: __DBL_DENORM_MIN__=((double)4.94065645841246544176568792868221372e-324L)
  define: __DBL_HAS_DENORM__=1
  define: __DBL_HAS_INFINITY__=1
  define: __DBL_HAS_QUIET_NAN__=1
  define: __LDBL_MANT_DIG__=64
  define: __LDBL_DIG__=18
  define: __LDBL_MIN_EXP__=(-16381)
  define: __LDBL_MIN_10_EXP__=(-4931)
  define: __LDBL_MAX_EXP__=16384
  define: __LDBL_MAX_10_EXP__=4932
  define: __DECIMAL_DIG__=21
  define: __LDBL_DECIMAL_DIG__=21
  define: __LDBL_MAX__=1.18973149535723176502126385303097021e+4932L
  define: __LDBL_MIN__=3.36210314311209350626267781732175260e-4932L
  define: __LDBL_EPSILON__=1.08420217248550443400745280086994171e-19L
  define: __LDBL_DENORM_MIN__=3.64519953188247460252840593361941982e-4951L
  define: __LDBL_HAS_DENORM__=1
  define: __LDBL_HAS_INFINITY__=1
  define: __LDBL_HAS_QUIET_NAN__=1
  define: __FLT32_MANT_DIG__=24
  define: __FLT32_DIG__=6
  define: __FLT32_MIN_EXP__=(-125)
  define: __FLT32_MIN_10_EXP__=(-37)
  define: __FLT32_MAX_EXP__=128
  define: __FLT32_MAX_10_EXP__=38
  define: __FLT32_DECIMAL_DIG__=9
  define: __FLT32_MAX__=3.40282346638528859811704183484516925e+38F32
  define: __FLT32_MIN__=1.17549435082228750796873653722224568e-38F32
  define: __FLT32_EPSILON__=1.19209289550781250000000000000000000e-7F32
  define: __FLT32_DENORM_MIN__=1.40129846432481707092372958328991613e-45F32
  define: __FLT32_HAS_DENORM__=1
  define: __FLT32_HAS_INFINITY__=1
  define: __FLT32_HAS_QUIET_NAN__=1
  define: __FLT64_MANT_DIG__=53
  define: __FLT64_DIG__=15
  define: __FLT64_MIN_EXP__=(-1021)
  define: __FLT64_MIN_10_EXP__=(-307)
  define: __FLT64_MAX_EXP__=1024
  define: __FLT64_MAX_10_EXP__=308
  define: __FLT64_DECIMAL_DIG__=17
  define: __FLT64_MAX__=1.79769313486231570814527423731704357e+308F64
  define: __FLT64_MIN__=2.22507385850720138309023271733240406e-308F64
  define: __FLT64_EPSILON__=2.22044604925031308084726333618164062e-16F64
  define: __FLT64_DENORM_MIN__=4.94065645841246544176568792868221372e-324F64
  define: __FLT64_HAS_DENORM__=1
  define: __FLT64_HAS_INFINITY__=1
  define: __FLT64_HAS_QUIET_NAN__=1
  define: __FLT128_MANT_DIG__=113
  define: __FLT128_DIG__=33
  define: __FLT128_MIN_EXP__=(-16381)
  define: __FLT128_MIN_10_EXP__=(-4931)
  define: __FLT128_MAX_EXP__=16384
  define: __FLT128_MAX_10_EXP__=4932
  define: __FLT128_DECIMAL_DIG__=36
  define: __FLT128_MAX__=1.18973149535723176508575932662800702e+4932F128
  define: __FLT128_MIN__=3.36210314311209350626267781732175260e-4932F128
  define: __FLT128_EPSILON__=1.92592994438723585305597794258492732e-34F128
  define: __FLT128_DENORM_MIN__=6.47517511943802511092443895822764655e-4966F128
  define: __FLT128_HAS_DENORM__=1
  define: __FLT128_HAS_INFINITY__=1
  define: __FLT128_HAS_QUIET_NAN__=1
  define: __FLT32X_MANT_DIG__=53
  define: __FLT32X_DIG__=15
  define: __FLT32X_MIN_EXP__=(-1021)
  define: __FLT32X_MIN_10_EXP__=(-307)
  define: __FLT32X_MAX_EXP__=1024
  define: __FLT32X_MAX_10_EXP__=308
  define: __FLT32X_DECIMAL_DIG__=17
  define: __FLT32X_MAX__=1.79769313486231570814527423731704357e+308F32x
  define: __FLT32X_MIN__=2.22507385850720138309023271733240406e-308F32x
  define: __FLT32X_EPSILON__=2.22044604925031308084726333618164062e-16F32x
  define: __FLT32X_DENORM_MIN__=4.94065645841246544176568792868221372e-324F32x
  define: __FLT32X_HAS_DENORM__=1
  define: __FLT32X_HAS_INFINITY__=1
  define: __FLT32X_HAS_QUIET_NAN__=1
  define: __FLT64X_MANT_DIG__=64
  define: __FLT64X_DIG__=18
  define: __FLT64X_MIN_EXP__=(-16381)
  define: __FLT64X_MIN_10_EXP__=(-4931)
  define: __FLT64X_MAX_EXP__=16384
  define: __FLT64X_MAX_10_EXP__=4932
  define: __FLT64X_DECIMAL_DIG__=21
  define: __FLT64X_MAX__=1.18973149535723176502126385303097021e+4932F64x
  define: __FLT64X_MIN__=3.36210314311209350626267781732175260e-4932F64x
  define: __FLT64X_EPSILON__=1.08420217248550443400745280086994171e-19F64x
  define: __FLT64X_DENORM_MIN__=3.64519953188247460252840593361941982e-4951F64x
  define: __FLT64X_HAS_DENORM__=1
  define: __FLT64X_HAS_INFINITY__=1
  define: __FLT64X_HAS_QUIET_NAN__=1
  define: __DEC32_MANT_DIG__=7
  define: __DEC32_MIN_EXP__=(-94)
  define: __DEC32_MAX_EXP__=97
  define: __DEC32_MIN__=1E-95DF
  define: __DEC32_MAX__=9.999999E96DF
  define: __DEC32_EPSILON__=1E-6DF
  define: __DEC32_SUBNORMAL_MIN__=0.000001E-95DF
  define: __DEC64_MANT_DIG__=16
  define: __DEC64_MIN_EXP__=(-382)
  define: __DEC64_MAX_EXP__=385
  define: __DEC64_MIN__=1E-383DD
  define: __DEC64_MAX__=9.999999999999999E384DD
  define: __DEC64_EPSILON__=1E-15DD
  define: __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD
  define: __DEC128_MANT_DIG__=34
  define: __DEC128_MIN_EXP__=(-6142)
  define: __DEC128_MAX_EXP__=6145
  define: __DEC128_MIN__=1E-6143DL
  define: __DEC128_MAX__=9.999999999999999999999999999999999E6144DL
  define: __DEC128_EPSILON__=1E-33DL
  define: __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL
  define: __REGISTER_PREFIX__=
  define: __USER_LABEL_PREFIX__=
  define: __GNUC_STDC_INLINE__=1
  define: __NO_INLINE__=1
  define: __STRICT_ANSI__=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1
  define: __GCC_ATOMIC_BOOL_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
  define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
  define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
  define: __GCC_ATOMIC_INT_LOCK_FREE=2
  define: __GCC_ATOMIC_LONG_LOCK_FREE=2
  define: __GCC_ATOMIC_LLONG_LOCK_FREE=2
  define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
  define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
  define: __GCC_HAVE_DWARF2_CFI_ASM=1
  define: __PRAGMA_REDEFINE_EXTNAME=1
  define: __SSP_STRONG__=3
  define: __SIZEOF_INT128__=16
  define: __SIZEOF_WCHAR_T__=4
  define: __SIZEOF_WINT_T__=4
  define: __SIZEOF_PTRDIFF_T__=8
  define: __amd64=1
  define: __amd64__=1
  define: __x86_64=1
  define: __x86_64__=1
  define: __SIZEOF_FLOAT80__=16
  define: __SIZEOF_FLOAT128__=16
  define: __ATOMIC_HLE_ACQUIRE=65536
  define: __ATOMIC_HLE_RELEASE=131072
  define: __GCC_ASM_FLAG_OUTPUTS__=1
  define: __k8=1
  define: __k8__=1
  define: __code_model_small__=1
  define: __MMX__=1
  define: __SSE__=1
  define: __SSE2__=1
  define: __FXSR__=1
  define: __SSE_MATH__=1
  define: __SSE2_MATH__=1
  define: __SEG_FS=1
  define: __SEG_GS=1
  define: __gnu_linux__=1
  define: __linux=1
  define: __linux__=1
  define: __unix=1
  define: __unix__=1
  define: __ELF__=1
  define: __DECIMAL_BID_FORMAT__=1
  define: _STDC_PREDEF_H=1
  define: __STDC_IEC_559__=1
  define: __STDC_IEC_559_COMPLEX__=1
  define: __STDC_ISO_10646__=201706L
  define: __STDC_NO_THREADS__=1
  other: --gcc
  other: --gnu_version=70300
  stdver: --c11
  intelliSenseMode: gcc

It is strange that when I use the same configuration to open a c++ file, errors disappear.
In c file, the errors still exist.

{
    "configurations": [
        {
            "name": "WSL",
            "intelliSenseMode": "gcc-x64",
            "compilerPath": "/usr/bin/gcc",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "cppStandard": "c++11"
        }
    ],
    "version": 4
}

image

Okay, I got a repro now. It looks like the necessary defines such as __USE_POSIX are not able to get defined for some reason. We'll try to investigate fix it later.

Friendly ping @sean-mcmanus
Same issue in Ubuntu 18.04 with default settings.
Have it been fixed?

I was practicing C on Ubuntu 18.04 and came into the same issue, but now I've temporary solved this issue by adding "_GNU_SOURCE" in "defines" list, like:
{ "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**" ], "defines": [ "__USE_POSIX", "_GNU_SOURCE" ], "compilerPath": "/usr/bin/gcc", "cStandard": "c99", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64" } ], "version": 4 }
Removing "_GNU_SOURCE" definition will reproduce this issue.

Another user reported that at https://github.com/Microsoft/vscode-cpptools/issues/3547 . Using _POSIX_C_SOURCE=200809L or _XOPEN_SOURCE=700 is another way to fix it.

Does anyone know how gcc is picking up those values from your build system? Are you passing certain flags to gcc to define those? We just query gcc/clang for the system defines to use, so if you pass your build flags at the end of the compilerPath, that might also fix it.

This issue has been closed automatically because it's labeled as a 'duplicate' and has not had recent activity.

Was this page helpful?
0 / 5 - 0 ratings