在尝试编写该程序时,我总是在 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。
这可能是一个新手问题,但我真的很感激解决方案。
在#include 中:
对于标准库头文件,请使用 <>
对于其他标头,请使用双引号“”