为 C++ 开发设置 GTK+ 时遇到问题

Trouble setting up GTK+ for C++ Development

我在 Visual Studio 中创建了一个 example.cpp 文件,其中只有一行:

#include <gtk/gtk.h>

我收到以下错误:

cannot open source file "gtk/gtk.h"


以下是我设置 GTK+ 的步骤。

我从 http://win32builder.gnome.org/ 选择 gtk+-bundle_3.10.4-20131202_win64.zip 下载了最新的稳定版 GTK+。

然后我按照 gtk+-bundle_3.10.4-20131202_win64.README.txt 进行了以下说明。

总结一下:

  1. 我将 bin 文件夹添加到我的路径
  2. 确保系统上没有先前版本的 GTK+
  3. 准备好 Pango、GDK-Pixbuf 和 GTK+IMModules
  4. 通过 运行 gtk3-demo
  5. 验证它有效
  6. 通过 运行 pkg-config --cflags --libs gtk+-3.0 验证它在系统中,输出:

-mms-bitfields -IE:/Developer/external/gtk-3.10.4_win64/include/gtk-3.0 -IE:/Developer/external/gtk-3.10.4_win64/include/cairo -IE:/Developer/external/gtk-3.10.4_win64/include/pango-1.0 -IE:/Developer/external/gtk-3.10.4_win64/include/atk-1.0 -IE:/Developer/external/gtk-3.10.4_win64/include/cairo -IE:/Developer/external/gtk-3.10.4_win64/include/pixman-1 -IE:/Developer/external/gtk-3.10.4_win64/include -I/srv/win32builder/fixed_3104/build/win64/include/freetype2 -I/srv/win32builder/fixed_3104/build/win64/include/libxml2 -IE:/Developer/external/gtk-3.10.4_win64/include/libxml2 -I/srv/win32builder/fixed_3104/build/win64/include/freetype2 -IE:/Developer/external/gtk-3.10.4_win64/include/libpng16 -IE:/Developer/external/gtk-3.10.4_win64/include/gdk-pixbuf-2.0 -IE:/Developer/external/gtk-3.10.4_win64/include/libpng16 -IE:/Developer/external/gtk-3.10.4_win64/include/glib-2.0 -IE:/Developer/external/gtk-3.10.4_win64/lib/glib-2.0/include -LE:/Developer/external/gtk-3.10.4_win64/lib -lgtk-3 -lgdk-3 -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid -lwinmm -lz -lpangocairo-1.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lm -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl

其中 E:/Developer/external/gtk-3.10.4_win64 是我将 GTK 文件解压缩到的位置。

2020-03-19更新:

这个答案是旧的,我更新这个故事:

原文内容:

这些建筑很旧。您应该避免从随机来源获取您的 GTK+ 二进制文件。官方方式在GTK+官方网站上有记载:https://www.gtk.org/download/windows.php

您应该安装 MSYS2,它为 Windows 提供了大量 open-source 包。它使用 pacman 包管理器,然后允许您安装 GTK+ 3。它始终具有 GTK+ 3 的最新 up-to 日期版本(MSYS2 中提供的 3.22.7-1 作为我写的日期)。