2015-03-26 5 views
0

Итак, я пытаюсь использовать GTK + 3.0 в Visual Studio 2013, и я следовал этому руководству: How to configure gtk on Visual studio 2010. Проблема в том, что всякий раз, когда я пытаюсь построить решение, я получаю ошибки Linker. Я использую этот код:Настройка GTK + 3.0 в Visual Studio 2013

#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 

вещи я пытался:
Добавление «включают» папки в дополнительной области зависимостей компоновщика, а также область каталогов VC++ в настройках проекта
Проверка того, что каждый .lib в папке lib учитывается в Linker
Это список, который у меня есть:

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 

Кажется, что библиотеки просто не которые ссылаются должным образом, но я понятия не имею, что еще попробовать. Любые предложения приветствуются!

ответ

0

Для всех, кто заинтересован; Я понял! Это своего рода неряшливый способ справиться с вещами, но все, что мне нужно было сделать, это скопировать файлы .dll в папку Debug проекта VS2013. Все остальное работает так, как ожидалось!

0

Я следил за тем же самым шагом, и это сработало для меня. Входящие и libs, которые я использую, похоже, не содержат никаких дополнительных файлов.

В вашей сборке Путь к DLL GTK кажется неясным. Возможно, вы забыли добавить GTK dll dir (GTK \ bin) в свой системный путь?

Вы также должны заверить, что ваша конфигурация сборки соответствует DLL, поэтому win32 для dlls, построенных как 32bit и x64 для dll, построенных как 64-битные.

Смежные вопросы