VS Code 总是给出自定义标头的 includePath 错误。我该如何解决它?

问题描述 投票:0回答:1

在尝试编写该程序时,我总是在 VS Code 中遇到

includePath
错误。我只能导入标准库,如
stdio.h
stdlib.h
和此类头文件。如果我尝试导入自定义头文件,例如
gtk-3.0
,我会遇到
includePath
错误。即使对于使用
msys2
安装的文件(如
openssl
)也是如此。我需要您的帮助来了解更多信息并解决此问题。因此,尽管使用任何头文件(内置或外部),也不会永远在 VS Code 中遇到
includePath
错误曲线。

这是我所做的:

我正在尝试使用

gtk-3.0
构建一个简单的项目来验证电话号码。我的设置是带有 Visual Studio Code 的 Windows 11。我已经使用这里的
MSYS2
安装了C开发环境:https://www.msys2.org。安装 MSYS2 后,我在
MSYS
实用程序 -

中运行了以下命令
pacman -Syu
pacman -Su
pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-glib2 mingw-w64-x86_64-cairo mingw-w64-x86_64-pango mingw-w64-x86_64-gdk-pixbuf2

完成此操作后,我将以下内容添加到both用户和系统环境变量中:

D:\ProgramFiles\msys64
D:\ProgramFiles\msys64\ucrt64\bin
D:\ProgramFiles\msys64\ucrt64
D:\ProgramFiles\msys64\ucrt64\include
D:\ProgramFiles\msys64\mingw64
D:\ProgramFiles\msys64\mingw64\include

在我的 VS Code 中,我已经配置了

c_cpp_properties.json
,如下所示:

{
  "configurations": [
    {
      "name": "Win32",
      "includePath": [
        "${workspaceFolder}/**",
        "D:/ProgramFiles/msys64/mingw64/include",
        "D:/ProgramFiles/msys64/mingw64/include/gtk-3.0",
        "D:/ProgramFiles/msys64/mingw64/include/glib-2.0",
        "D:/ProgramFiles/msys64/ucrt64/include",
        "D:/ProgramFiles/msys64/mingw64/include/pango"
      ],
      "defines": [],
      "compilerPath": "D:\\ProgramFiles\\msys64\\ucrt64\\bin\\gcc.exe",
      "cStandard": "c11",
      "cppStandard": "c++17",
      "intelliSenseMode": "windows-gcc-x64",
      "browse": {
        "path": [
          "D:/ProgramFiles/msys64/mingw64/include",
          "D:/ProgramFiles/msys64/mingw64/include/gtk-3.0",
          "D:/ProgramFiles/msys64/mingw64/include/glib-2.0",
          "D:/ProgramFiles/msys64/ucrt64/include",
          "D:/ProgramFiles/msys64/mingw64/include/pango"
        ],
        "limitSymbolsToIncludedHeaders": true,
        "databaseFilename": ""
      }
    }
  ],
  "version": 4
}

每次我尝试导入外部标头,例如

#include <gtk-3.0/gtk/gtk.h>
,该行都是波浪线,并且在悬停时出现此错误:

#include errors detected. Please update your includePath. Squiggles are disabled for this translation unit (E:\Projects\C\phval.c).C/C++(1696)
cannot open source file "pango/pango.h" (dependency of "C:\Users\adars\.vscode\extensions\ms-vscode.cpptools-1.20.5-win32-x64\bin\gtk-3.0\gtk\gtk.h")C/C++(1696)

还有另一个错误:

E:\Projects\C>cd "e:\Projects\C\" && gcc phval.c -o phval && "e:\Projects\C\"phval
phval.c:1:29: fatal error: gtk-3.0/gtk/gtk.h: No such file or directory
 #include <gtk-3.0/gtk/gtk.h>
                             ^
compilation terminated.

尽管在 cpp 配置中明确将

gtk-3.0
添加到
includePath
,但还是会发生这种情况。请帮我解决这个问题。我不明白为什么它无法找到
pango.h
,因为我已明确添加
D:/ProgramFiles/msys64/mingw64/include/pango
并且它包含所述文件。因此,这就是原因,我想找到一种方法,这样我就可以只包含一个路径,之后我不必特别提及 pango.h 或其他数百万个依赖项的 includePaths。

这可能是一个新手问题,但我真的很感激解决方案。

c windows gtk3
1个回答
0
投票

在#include 中:

对于标准库头文件,请使用 <>

对于其他标头,请使用双引号“”

© www.soinside.com 2019 - 2024. All rights reserved.