2011-02-04 6 views
0

Мне очень нужна помощь по созданию простой программы GTK на C++, запущенной с использованием MinGW. Вот моя программа:C++ GTK make MinGW error простая программа

# Makefile for Hello World Program (lab0). 

all: lab0 

lab0: lab0.o 
    g++ -Wall lab0.o -o lab0 -L C:/Users/Vic/Desktop/MinGW/lib -lgtk 

lab0.o: lab0.c 
    g++ -Wall -I C:/Users/Vic/Desktop/MinGW/include/gtk-2.0/gtk -c lab0.c -o lab0.o 

Программа:

#include <gtk/gtk.h> 

int main (int argc, char *argv[]) 
{ 
    GtkWidget *window; 
    GtkWidget *label; 

    gtk_init (&argc, &argv); 

    /* create the main, top level, window */ 
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL); 

    /* give it the title */ 
    gtk_window_set_title (GTK_WINDOW (window), "Hello World"); 

    /* Connect the destroy signal of the window to gtk_main_quit 
    * When the window is about to be destroyed we get a notification and 
    * stop the main GTK+ loop 
    */ 
    g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); 

    /* Create the "Hello, World" label */ 
    label = gtk_label_new ("Hello, World"); 

    /* and insert it into the main window */ 
    gtk_container_add (GTK_CONTAINER (window), label); 

    /* make sure that everything, window and label, are visible */ 
    gtk_widget_show_all (window); 

    /* start the main loop, and let it rest there until the application is closed */ 
    gtk_main(); 

    return 0; 
} 

, когда я скомпилировать это с помощью MinGW я получаю эту ошибку:

g++ -Wall lab0.o -o lab0 -LC:/users/vic/desktop/mingw/lib -lgtk 
/bin/Id: cannot find -lgtk 
collect2: Id returned 1 exit status 
make: *** [lab0] Error 1 

Мне нужно решить эту проблему, и мне нужно, чтобы выяснить, как запустить gtk из моего файла makefile.

+0

У вас есть libgtk, установленный в ваша машина? –

ответ

1

В идеале, вы должны использовать PKG-конфигурации, чтобы помочь вам найти заголовочные и библиотечные пути:

g++ -Wall lab0.o -o lab0 `pkg-config --cflags --libs gtk+-win32-2.0` 

или просто путь к библиотеке:

g++ -Wall lab0.o -o lab0 -LC:/users/vic/desktop/mingw/lib -lgtk `pkg-config --libs gtk+-win32-2.0` 
+0

Вы также можете исправить ссылку gtk на вашем cmd, который должен быть '-lgtk + -win32-2.0' – karlphillip

+0

У меня есть pkg = config .. как его использовать? просто поместите эту команду в make-файл, и он будет работать? Мне не нужно использовать какую-то другую отдельную программу package? – user593301

+0

ОК, поэтому я попытался ввести команды pkg-config, которые вы мне дали, и они не работают. Я получаю эту ошибку:/bin/sh: pkg-config: команда не найдена и т. Д., Возможно, я делаю свой makefile неправильно? Можете ли вы дать мне make-файл, который использует pkg, который будет применяться к моей ситуации plz? спасибо – user593301