致命错误:glib.h:使用 vscode 和 mingw 时没有这样的文件或目录
Posted
技术标签:
【中文标题】致命错误:glib.h:使用 vscode 和 mingw 时没有这样的文件或目录【英文标题】:Fatal error: glib.h: No such file or directory when using vscode and mingw 【发布时间】:2021-01-18 12:20:22 【问题描述】:我在尝试将 glib.h 包含到项目中时遇到以下致命错误。 mingw gcc 找不到 glib.h。
致命错误:glib.h:没有这样的文件或目录
我已将问题隔离在一个简单的 helloworld.c 文件中。
在 Ctrl-Shift-B 构建时,我明白了。
我还按照阅读 here 的说明更新了 c_cpp_properties.json 文件中的 includePath。
是否有人对我应该调查或解决此问题有任何想法?我花了很多时间,但在这方面没有任何进展。 :(
helloworld.c 是:
#include <stdio.h>
#include <glib.h>
void main()
printf("Hello World!");
char c = getchar();
c_cpp_properties.json 是:
"configurations": [
"name": "MingGW",
"includePath": [
"$workspaceFolder/**",
"C:\\cryptolibs\\msys2-64\\mingw64\\include\\glib-2.0",
"C:\\cryptolibs\\msys2-64\\mingw64\\lib\\glib-2.0\\include",
"C:\\cryptolibs\\pbc-0.5.14\\include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "C:\\MinGW\\bin\\g++.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64",
"browse":
"path": [
"$workspaceFolder",
"C:\\cryptolibs\\msys2-64\\mingw64\\include\\glib-2.0",
"C:\\cryptolibs\\msys2-64\\mingw64\\lib\\glib-2.0\\include",
"C:\\cryptolibs\\pbc-0.5.14\\include"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
],
"version": 4
launch.json 是:
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
"name": "gcc.exe - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "$fileDirname\\$fileBasenameNoExtension.exe",
"args": [],
"stopAtEntry": false,
"cwd": "$workspaceFolder",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",
"setupCommands": [
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
],
"preLaunchTask": ""
]
tasks.json 是:
"tasks": [
"type": "shell",
"label": "C/C++: gcc.exe build active file",
"command": "C:\\MinGW\\bin\\gcc.exe",
"args": ["-g", "$file", "-o", "$fileDirname\\$fileBasenameNoExtension.exe"],
"options":
"cwd": "$workspaceFolder"
,
"problemMatcher": ["$gcc"],
"group":
"kind": "build",
"isDefault": true
]
【问题讨论】:
你为什么要把它包括在内?您认为它将提供哪些声明? 谢谢。我需要 glib 来完成一个更大的研究生项目。我已经在 helloworld.c 中隔离了它以用于 ***。我还成功地在 unbuntu 下构建了 glib 作为测试。但是,我们的项目具有固有地与 windows 以及涉及的其他几个项目成员相关的依赖项。 好吧,显然你需要在你的系统上安装glib
dev 包。你有吗?
我有。但是,我无法在 windows 下构建 glib。对我来说,“配置”文件不会在 powershell 或 cygwin 下运行。因此,我使用 msys 安装并安装了 gtk,希望能够解决它,因为一些网页指向了这个方向。但是,唉,我被困住了。我应该直接安装 glib 吗?你知道如何在windows下安装和构建glib吗?我有 glib-2.59.0 但它没有配置,我也没有在上面运行 make...
在 linux 下,glib.h
文件位于:/usr/include/glib-2.0/glib.h
。当然,一个重要的考虑因素是您是否安装了 libglib6.so(或类似的)库文件
【参考方案1】:
为了能够使用 glib.h,您需要在系统上安装 glib2。 如果你有一个 shell(比如 MSYS2),你通常可以通过以下方式获取编译器标志:
pkg-config --cflags glib-2.0
和链接器标志:
pkg-config --libs glib-2.0
例如,在我的 MSYS2 系统上,这会返回:
-LD:/Prog/winlibs64-10.2.0/custombuilt/lib -lglib-2.0 -lintl
和
-mms-bitfields -ID:/Prog/winlibs64-10.2.0/custombuilt/include/glib-2.0 -ID:/Prog/winlibs64-10.2.0/custombuilt/lib/glib-2.0/include -ID:/Prog/winlibs64-10.2.0/custombuilt/include
分别。
【讨论】:
小修正:pkg-config --libs glib-2.0
获取链接器标志。
@OctoPoulos 感谢您的关注。我在答案中修复了它。以上是关于致命错误:glib.h:使用 vscode 和 mingw 时没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章