Visual Studio 2013 年的 GTK+ 3.0 安装

GTK+ 3.0 setup in Visual Studio 2013

所以我在 Visual Studio 2013 年尝试使用 GTK+ 3.0,我遵循了这个教程:How to configure gtk on Visual studio 2010。问题是每当我尝试构建解决方案时,我都会收到链接器错误。我正在使用此代码:

    #include <gtk-3.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 VS2013");

        gtk_widget_show(window);

        gtk_main(); 
        return 0;
    }

每个方法调用都会产生这种类型的错误:

    Error   1   error LNK2019: unresolved external symbol _gtk_init_abi_check referenced in function _main

我尝试过的事情:
在链接器的附加依赖项区域添加 'include' 文件夹,以及项目设置下的 VC++ 目录区域
检查链接器中是否包含 lib 文件夹中的每个 .lib
这是我的列表:

    atk-1.0.lib cairo.lib fontconfig.lib gailutil.lib gdk-win32-3.0.lib gdk_pixbuf-2.0.lib gio-2.0.lib glib-2.0.lib gmodule-2.0.lib gobject-2.0.lib gthread-2.0.lib gtk-win32-3.0.lib pango-1.0.lib pangocairo-1.0.lib pangoft2-1.0.lib pangowin32-1.0.lib

检查编译器标志以确保它们正确
这是我正在使用的编译器标志列表:

    -IC:/gtk/include/gtk-3.0
    -IC:/gtk/lib/gtk-3.0/3.0.0 
    -IC:/gtk/include/atk-1.0
    -IC:/gtk/include/cairo
    -IC:/gtk/include/gdk-pixbuf-2.0
    -IC:/gtk/include/pango-1.0
    -IC:/gtk/include/glib-2.0
    -IC:/gtk/lib/glib-2.0/include
    -IC:/gtk/include
    -IC:/gtk/include/freetype2
    -IC:/gtk/include/libpng14
    -IC:/gtk/include/fontconfig
    -IC:/gtk/include/gail-3.0
    -IC:/gtk/include/gio-win32-2.0
    -IC:/gtk/include/jasper
    -IC:/gtk/include/librsvg-2.0
    -IC:/gtk/include/libxml2
    -IC:/gtk/include/lzma
    -IC:/gtk/include/pixman-1
    -IC:/gtk/lib/libffi-3.0.12/include

似乎库没有被正确引用,但我不知道还能尝试什么。欢迎提出任何建议!

所有感兴趣的人;我想到了!这是一种草率的处理方式,但我所要做的就是将 .dll 文件复制到 VS2013 项目的 Debug 文件夹中。其他一切都按预期工作!

我遵循了相同的步骤并且对我有用。我使用的包含和库似乎不包含任何其他文件。

在您的构建中,GTK dll 的路径似乎不清楚。也许您忘记将 GTK dll 目录 (GTK\bin) 添加到您的系统路径?

您还必须确保您的构建配置与 dll 匹配,因此 win32 用于构建为 32 位的 dll,x64 用于构建为 64 位的 dll。