Gtkbuilder错误
我已经为我的powerpc目标板安装了带有directFB后端的GTK+-2.10.14,我可以在我的目标板上运行示例应用程序,并在目标LCD中看到gui。于是我开始使用glade创建gui,但在glade上创建我自己的gui时,我发现glade需要gtkbuildet来编译.glade文件。gtkbuilder可从GTK+-2.12.0版获得,因此再次安装GTK+-2.12.0版和中的搁置程序 我的计划如下:Gtkbuilder错误,gtk,Gtk,我已经为我的powerpc目标板安装了带有directFB后端的GTK+-2.10.14,我可以在我的目标板上运行示例应用程序,并在目标LCD中看到gui。于是我开始使用glade创建gui,但在glade上创建我自己的gui时,我发现glade需要gtkbuildet来编译.glade文件。gtkbuilder可从GTK+-2.12.0版获得,因此再次安装GTK+-2.12.0版和中的搁置程序 我的计划如下: #include<gtk/gtk.h> int main( int
#include<gtk/gtk.h>
int
main( int argc,char **argv )
{
GtkBuilder *builder;
GtkWidget *window;
GError *error = NULL;
/* Init GTK+ */
gtk_init( &argc, &argv );
/* Create new GtkBuilder object */
builder = gtk_builder_new();
/* Load UI from file. If error occurs, report it and quit application.
* * Replace "tut.glade" with your saved project. */
if( ! gtk_builder_add_from_file( builder, "graph.glade", &error ) )
{
g_warning( "%s", error->message );
g_free( error );
return( 1 );
}
/* Get main window pointer from UI */
window = GTK_WIDGET( gtk_builder_get_object( builder, "window1" ) );
/* Connect signals */
gtk_builder_connect_signals( builder, NULL );
/* Destroy builder, since we don't need it anymore */
g_object_unref( G_OBJECT( builder ) );
/* Show window. All other widgets are automatically shown by GtkBuilder */
gtk_widget_show( window );
/* Start main loop */
gtk_main();
return( 0 );
}
请帮助我走出这个错误。当没有
GtkBuilder时,使用的是。您必须使用同时支持GTK+2和libglade的glade版本(符合要求)
不要尝试在较新的GTK+上使用directFB后端:它由Debian安装程序的开发人员积极维护,但很长一段时间以来就被放弃了。我的猜测是,pkg config
仍然指向旧的2.10版本。我也不明白为什么您有pkg config gtk+-2.0--cflags--libs
和还提供所有GCC命令行参数。这应该是pkg config的工作
您确定您的程序正在链接到新版本的Gtk吗?尝试一个打印gtk版本的简单程序来检查相同的版本,或者如果有可用的ldd
like工具,那么您可以检查您的可执行文件所依赖的共享对象,并查看它是否实际链接到较新的gtk库gtk 2.12支持GtkBuilder,因此他只需要一个处理GtkBuilder的Glade版本。Libglade与他无关。DirectFB支持在GTK 2.14()中被破坏,而在GTK 2.10.13()中被积极维护。我仍然认为GTK+ 2.10和LIGBLADE是一个更明智的选择。
powerpc-linux-gnu-gcc progressbar.c -o progressbar -pthread -I/opt/gtkdfb/usr/local/include/glib-2.0 -I/opt/gtkdfb/usr/local/lib/glib-2.0/include -I/opt/gtkdfb/usr/local/include/pango-1.0 -I/opt/gtkdfb/usr/local/include/cairo -I/opt/gtkdfb/usr/local/include -I/opt/gtkdfb/usr/local/freetype2 -I/opt/gtkdfb/usr/local/libpng12 -I/opt/gtkdfb/usr/local/includegtk-2.0 -D_REENTRANT -D_GNU_SOURCE -I/opt/gtkdfb/usr/include/directfb -L/opt/gtkdfb/usr/local/lib -ldirectfb -lfusion -ldirect -lpthread -ldl -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lxml2 -lpng12 -lgthread-2.0 -lgtk-directfb-2.0 -lffi -lz -lm `pkg-config gtk+-2.0 --cflags --libs`
/tmp/ccZ9fkFp.o: In function `main':
progressbar.c:(.text+0x3c): undefined reference to `gtk_builder_new'
progressbar.c:(.text+0x58): undefined reference to `gtk_builder_add_from_file'
progressbar.c:(.text+0xb0): undefined reference to `gtk_builder_get_object'
progressbar.c:(.text+0xd8): undefined reference to `gtk_builder_connect_signals'
collect2: ld returned 1 exit status
make: *** [helloworld] Error 1