Hallo,
ich möchte in meinem Programm gtkhtml einbinden, um einfache html-seiten anzuzeigen.leider klappt das mit dem linken nicht so ganz:
1 2 3 | $ gcc -Wall -g -o html gtk_htmlview.cxx $(pkg-config --cflags --libs gtk+-2.0 libgtkhtml-2.0) gtk_htmlview.cxx: In function ‘int main(int, char**)’: gtk_htmlview.cxx:63: error: ‘gtk_html_new_from_string’ was not declared in this scope |
die Quellcode-Datei (Beispielprogramm aufs nötigste reduziert)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | #include <gtk/gtk.h> //#include <gtkhtml/gtkhtml.h> //for gtkhtml-3 #include <libgtkhtml/gtkhtml.h> //for gtkhtml-2 static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { /* If you return FALSE in the "delete-event" signal handler, * GTK will emit the "destroy" signal. Returning TRUE means * you don't want the window to be destroyed. * This is useful for popping up 'are you sure you want to quit?' * type dialogs. */ g_print ("delete event occurred\n"); /* Change TRUE to FALSE and the main window will be destroyed with * a "delete-event". */ return TRUE; } /* Another callback */ static void destroy( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } int main( int argc, char *argv[] ) { /* GtkWidget is the storage type for widgets */ GtkWidget *window; GtkWidget *view; /* This is called in all GTK applications. Arguments are parsed * from the command line and are returned to the application. */ gtk_init (&argc, &argv); /* create a new window */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* When the window is given the "delete-event" signal (this is given * by the window manager, usually by the "close" option, or on the * titlebar), we ask it to call the delete_event () function * as defined above. The data passed to the callback * function is NULL and is ignored in the callback function. */ g_signal_connect (window, "delete-event", G_CALLBACK (delete_event), NULL); /* Here we connect the "destroy" event to a signal handler. * This event occurs when we call gtk_widget_destroy() on the window, * or if we return FALSE in the "delete-event" callback. */ g_signal_connect (window, "destroy", G_CALLBACK (destroy), NULL); /* Sets the border width of the window. */ gtk_container_set_border_width (GTK_CONTAINER (window), 10); /* Creates htmlview */ //view = gtk_html_new_from_string ("<HTML><BODY><H1>Hello World</H1></BODY></HTML>", -1); view = html_view_new(); //gtkhtml2 /* This packs the button into the window (a gtk container). */ gtk_container_add (GTK_CONTAINER (window), view); /* The final step is to display this newly created widget. */ gtk_widget_show (view); /* and the window */ gtk_widget_show (window); /* All GTK applications must have a gtk_main(). Control ends here * and waits for an event to occur (like a key press or * mouse event). */ gtk_main (); return 0; } |
die Ausgabe von pkgconfig ("-I/usr/include/gtkhtml-2.0" und "-lgtkhtml-2" vorhanden)
1 2 | echo $(pkg-config --cflags --libs gtk+-2.0 libgtkhtml-2.0) -pthread -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/include/gtkhtml-2.0 -I/usr/include/libxml2 -pthread -lgtkhtml-2 -lgtk-x11-2.0 -lxml2 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 |
Hat jemand eine Idee?
//edit: view = html_view_new bei gtkhtml2
Gruß Frank