在Visual C++中使用GTK+

6

我希望在C++项目中使用GTK作为用户界面。 我不知道如何设置它的开发环境。 我从http://www.gtk.org/download-windows.html下载了GTK的全套软件包。 如何在Visual C++ 2008中使用它?

6个回答

8
我已经按照这里解释的“Hello World”教程:http://developer.gnome.org/gtk-tutorial/stable/c39.html#SEC-HELLOWORLD,在Windows 7 32位操作系统中使用Visual C++ 10成功运行。以下是我采取的步骤(假设您将GTK+安装到C:\GTK+):
进入“属性/配置属性/调试”,并将以下内容添加到环境变量中。
PATH=%PATH%;C:\GTK+\bin

打开属性/配置属性/C/C++/常规,然后添加到"附加包含目录"(我确信有更好的方法,但这个方法有效):

C:\GTK+\include\gtk-2.0;C:\GTK+\include\glib-2.0;C:\GTK+\lib\glib-2.0\include;C:\GTK+\include\cairo;C:\GTK+\include\pango-1.0;C:\GTK+\include\gtk-2.0\gdk;C:\GTK+\lib\gtk-2.0\include;C:\GTK+\include\gdk-pixbuf-2.0;C:\GTK+\include\atk-1.0

属性/配置属性/链接器/常规,然后在附加库依赖项中添加:

C:\GTK+\lib

最终选项属性/配置属性/链接器/输入:
gtk-win32-2.0.lib;gdk-win32-2.0.lib;atk-1.0.lib;gdk_pixbuf-2.0.lib;pangowin32-1.0.lib;pangocairo-1.0.lib;pango-1.0.lib;cairo.lib;gthread-2.0.lib;gobject-2.0.lib;gmodule-2.0.lib;glib-2.0.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)

这对于“Hello World”教程有效,但我感觉如果你使用更多的命令,可能会有一些库/头文件被遗漏。不过,这应该为任何在Visual C++中编写GTK+程序的人提供了一个良好的基础。


1
+1 这个答案非常有帮助。虽然我认为您忘记提到包括'C:\ GTK + \ include \ '本身了?还有,获取所需的dll文件并将它们与可执行文件放在一起。 - AturSams
我应该与可执行文件一起放置哪些dll文件?全部来自C:\ gtk \ bin吗? - Jack

3

对于任何类型的库,首先需要确保您拥有可用的lib文件和相关的头文件。获得这些文件后,只需在C++ > General > Additional Include directories下修改项目属性,将路径添加到头文件中,并在Linker > General > Additional Library Dependencies下,将路径添加到lib文件中。然后,在Linker > Input > Additional Dependencies下,添加所需的.lib文件的文件名(而非完整路径)。


3

这里有一些旧的指令,可以在这里这里找到。你可能需要根据自己的需求进行调整。

GTK还有一些邮件列表,你可以加入其中讨论这个问题。对于这个特定问题来说,最好的列表是gtk-app-devel-list@gnome.org或gtk-list@gnome.org。

还有一个irc频道,在irc.gnome.org上是#gtk+。我的经验是,你要么得到快速的答案,要么就根本没有回应。

如果可能的话,你可以尝试从Visual C++切换到mingw,它是Windows上的一个类Unix/Linux构建系统。很少有GTK开发者在Windows上使用它,几乎所有人都使用mingw。


1
我本来想把它作为评论发布给@Anthony的答案,但是它告诉我“字符太多了”,而且我可以使用格式进行回答并使其更易读。
我按照Anthony的解释操作,它运行得很好。虽然我只编译了hello world。我使用的是Windows 8 64位机器,但我的VS目标是x86,因此我下载了gtk+ 32位。
如果您正在使用Visual Studio 13和GTK+ 3.6.4,并假设您在C:\ gtk目录上安装了GTK,则以下是Properties / C / C ++ / General / Additional Include Directories:

C:\gtk\include\gtk-3.0;C:\gtk\include\glib-2.0;C:\gtk\include\cairo;C:\gtk\include\pango-1.0;C:\gtk\include\gtk-3.0\gdk;C:\gtk\include\gdk-pixbuf-2.0;C:\gtk\include\atk-1.0;C:\gtk\lib\glib-2.0\include

属性/链接器/输入:

gtk-win32-3.0.lib;gdk-win32-3.0.lib;atk-1.0.lib;gdk_pixbuf-2.0.lib;pangowin32-1.0.lib;pangocairo-1.0.lib;pango-1.0.lib;cairo.lib;gthread-2.0.lib;gobject-2.0.lib;gmodule-2.0.lib;glib-2.0.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)


0

对于 Windows 系统: 使用 vcpkg 依赖管理器(https://vcpkg.io/en/index.html)安装 gtk;在安装完 vcpkg 后运行以下命令:

.\vcpkg install gtk

或者

.\vcpkg install gtk:x64-windows

或者

.\vcpkg install gtk:x86-windows

0

大多数包含路径为:

C:\gtk\include

一开始我错过了这个

C:\gtk\lib\glib-2.0\include

添加了这个之后,我能够让它运行。 Windows 10 X64,GTK-3.0 X64 Windows捆绑包,Visual Studio 2017,Visual C++以C模式(.c文件)运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接