visual-studio-2010 - 如何在Visual Studio 2010上配置gtk

原文 标签 visual-studio-2010 visual-c++ configuration gtk

我曾尝试在Visual Studio上配置gtk +,但无法正常工作。,
谁能建议我一个适当的解决方案,例如如何在Visual Studio 2010上安装gtk

最佳答案

我让GTK +与VS2010一起工作,所以如果您也想使其工作,请准备好一些乐趣,因为这将需要几分钟。

首先,下载最新的Windows All-In-One bundle。我使用here的GTK 2.24 bundle 包的可选直接下载链接。直接链接是32位版本。我尚未测试64位版本,因为它仍被列为实验版本。

下载 bundle 软件后,将其解压缩到C:\gtkD:\gtk之类的文件中

接下来,我们将为GTK文件夹创建一个系统环境变量。打开命令提示符并输入:setx GTKDIR {Path to your GTK folder} /m(在我的情况下为setx GTKDIR D:\gtk /m)

我们还将将GTK +构建的应用程序在Windows上运行所需的.dll文件添加到我们的系统PATH中。为了使事情变得简单,建议您使用PathEditor编辑系统PATH。现在,将路径添加到GDK Binaries文件夹(在我的情况下为D:\ gtk \ bin)到系统PATH。通过在命令提示符下键入 PATH 来确认GTK bin文件夹已添加到PATH中。

现在,我们转到Visual Studio 2010并创建一个新项目。

File
  ->New
    ->Project
    Visual C++
      ->Win32
        ->Win32 Console Application

然后出现应用程序向导。

单击选择:
Windows Application

Empty Project

单击完成继续。

在添加任何源文件之前,右键单击解决方案资源管理器中的项目名称,然后单击属性。现在转到配置属性,然后进入 VC++目录。现在,我们需要将GTK中的包含文件和库文件添加到包含目录库目录中。

中应包含以下内容包括目录
$(GTKDIR)\lib\gtk-2.0\include
$(GTKDIR)\lib\glib-2.0\include
$(GTKDIR)\include

库目录:
$(GTKDIR)\lib

当我们仍在“项目属性” View 中时,单击链接器,然后单击系统。在右侧查找子系统,然后单击下拉框。选择 Windows / SUBSYSTEM:WINDOWS

接下来,我们必须为编译器和链接器生成标志。幸运的是,GTK +附带了一个不错的小工具 pkg-config ,我们将使用它自动为我们生成这些标志。可以在GTK的bin文件夹中找到pkg-config工具。在我的情况下,这是 D:\ gtk \ bin %GTKDIR%\ bin (使用我们先前定义的系统变量)。只需使用命令提示符导航到bin文件夹(创建的文本文件将在其中输出)并运行以下命令:
pkg-config --cflags gtk+-2.0 --msvc-syntax > compilerflags.txt

这将创建我们需要的编译器标志,并将其存储在文本文件中。
我的编译器标志结果(我删除了标志 -mms-bitfields ,这是我们不需要的仅gcc标志):
-ID:/gtk/include/gtk-2.0 -ID:/gtk/lib/gtk-2.0/include -ID:/gtk/include/atk-1.0 -ID:/gtk/include/cairo -ID:/gtk/include/gdk-pixbuf-2.0 -ID:/gtk/include/pango-1.0 -ID:/gtk/include/glib-2.0 -ID:/gtk/lib/glib-2.0/include -ID:/gtk/include -ID:/gtk/include/freetype2 -ID:/gtk/include/libpng14

我们将对链接器标志执行相同的操作:
pkg-config --libs gtk+-2.0 --msvc-syntax > linkerflags.txt

我的链接器标志结果:
/libpath:D:/gtk/lib gtk-win32-2.0.lib gdk-win32-2.0.lib atk-1.0.lib gio-2.0.lib pangowin32-1.0.lib gdi32.lib pangocairo-1.0.lib gdk_pixbuf-2.0.lib pango-1.0.lib cairo.lib gobject-2.0.lib gmodule-2.0.lib gthread-2.0.lib glib-2.0.lib intl.lib

生成所有需要的标志后,我们需要将它们添加到我们的项目中。再次右键单击项目名称,然后单击属性。现在转到C/C++并单击Command Line。在右侧,您应该看到一个名为其他选项的空框。将编译器flags.txt 内容复制并粘贴到此框中。

完成上述操作后,单击链接器,然后单击命令行。再一次,只需将 linkerflags.txt 文件的内容复制并粘贴到其他选项框中。当我们在这里时,添加最后一个链接程序标志 / ENTRY:mainCRTStartup 该标志告诉Visual Studio我们要使用标准的main()而不是Microsoft的_tmain()作为我们的主程序入口点。

最后,在“源文件”文件夹中,创建并添加具有以下内容的新.cpp文件:
#include <gtk-2.0\gtk\gtk.h>

int main(int argc, char* argv[])
{
    gtk_init(&argc, &argv);

    GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_widget_set_usize(window, 300, 200);

    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);   
    gtk_window_set_title(GTK_WINDOW(window), "GTK+ with VS2010");

    gtk_widget_show(window);     

    gtk_main();   
    return 0;
}

现在,所有内容都应该可以编译,链接和运行了。如果一切顺利,您应该受到以下欢迎:

那很有趣,对吗? :)

关于visual-studio-2010 - 如何在Visual Studio 2010上配置gtk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15906580/

相关文章:

c++ - 从.cproject转到.vcproj

mysql - 我可以“隐藏” MySQL中的列吗?

c# - 什么是以及如何修复 System.TypeInitializationException 错误?

c++ - 如何从字符串中获取前两个字符并在另一个字符串中使用这两个字符

javascript - 在 Electron 应用程序中管理应用程序设置

visual-studio-2010 - 被 "The EntityCollection has already been initialized."错误卡住

visual-c++ - 使用 Microsoft 的 Visual C++ 编译器时,gcc 是否有等效于 -pedantic 的内容?

c++ - 无法创建SymmetricKey

.net - 使 WCF 更易于配置

redirect - 仅当目录不存在时,才如何从nginx中的URL删除尾部斜杠?