PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GTK mit OpenGL (gtkglext)



GU4RDI4N
19-07-2007, 21:01
hi,

ich habe ein Problem wenn ich versuche ein GTK-programm zu compilieren das die OpenGL erweiterung benutzt:

main.c:



#include <gtk/gtk.h>
#include <gtk/gtkgl.h>

GtkWidget *window;

void destroy(GtkWidget *wg, gpointer data)
{
gtk_main_quit();
}

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

gtk_gl_init (&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "OpenGL-Test");
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL);

gtk_widget_show_all(window);

gtk_main();

return 0;
}





Konsole:


gu4rdi4n@gu4rdi4n:~/coding/C/gtk/OpenGL$ gcc main.c -o main `pkg-config --cflags --libs gtk+-2.0` -I /usr/include/gtkglext-1.0/ -I/usr/lib/gtkglext-1.0/include
/tmp/ccHyeF8j.o: In function `main':
main.c:(.text+0x3b): undefined reference to `gtk_gl_init'
collect2: ld returned 1 exit status
gu4rdi4n@gu4rdi4n:~/coding/C/gtk/OpenGL$


wieso findet er die funktion gtk_gl_init() nicht?
wie bekomme ich es zum laufen?


System:
Debian Lenny 2.6.18-4-686
gcc version 4.1.2 20061115 (prerelease)

anda_skoa
20-07-2007, 15:36
Deinem Aufruf fehlt die Linkerangabe für die Bibliothek die gtk_gl_init() zur Verfügung stellt.

Vermutlich ist die Extension auch über pkgconfig abrufbar. Wahrscheinlich hat sie wiederum GTK bereits als Abhängigkeit eingetragen und daher sollte der pkgconfig Aufruf der Extension allein ausreichend sein.

Ciao,
_

GU4RDI4N
20-07-2007, 16:56
danke dir, funzt super.

@ alle mitm ähnlichen prob:
hab ers mit "pkg-config --list-all" herausgefunden wie das paket heisst das ich nehmen muss und dann einfach"gcc main.c -o main `pkg-config --cflags --libs gtk+-2.0 gtkglext-1.0`" benutzt.