未定义的引用...使用gtk图形

时间:2013-12-31 19:35:07

标签: c eclipse gtk3

我正在尝试在我最近制作的c程序上实现图形。我的老师建议这个链接:

https://developer.gnome.org/gtk-tutorial/2.22/c39.html

我已经安装了gtk-package并且在Eclipse中 - 我已经包含了相关的路径,并且在编译之前首先看到了everthing似乎没问题。

 #include <gtk/gtk.h>


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

   gtk_init (&argc, &argv);

   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_widget_show  (window);

   gtk_main ();

   return 0;
}

教程中的这个小示例宏应该显示一个200x200像素的窗口。 但是在编译时我得到以下错误:

 C:\Documents and Settings\Ägaren\workspace\cGraphics1\Debug/../src/cGraphics1.c:19:  undefined reference to `gtk_init_abi_check'
 C:\Documents and Settings\Ägaren\workspace\cGraphics1\Debug/../src/cGraphics1.c:21: undefined reference to `gtk_window_new'
 C:\Documents and Settings\Ägaren\workspace\cGraphics1\Debug/../src/cGraphics1.c:22: undefined reference to `gtk_widget_show'
 C:\Documents and Settings\Ägaren\workspace\cGraphics1\Debug/../src/cGraphics1.c:24: undefined reference to `gtk_main'

所以问题是为什么我会收到这些错误?答案是,我应该使用更多包含头文件?你可以看到我只有一个包含。或者可能是这样我需要在编译时链接几个对象文件?在eclipse中,编译参数列表如下所示:

 gcc -o cGraphics1.exe "src\\cGraphics1.o" 

2 个答案:

答案 0 :(得分:4)

问题是因为链接器无法找到gtk依赖项来编译可执行文件。

请查看此https://developer.gnome.org/gtk3/unstable/gtk-compiling.html简单指南以获取帮助。

基本上,我们鼓励您使用pkg-config包含所有必需的库:pkg-config --cflags gtk+-3.0 我不知道如何让eclipse将其添加到每个命令中(这大致是库列表:-lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo- 1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0)

答案 1 :(得分:2)

链接器无法加载所需的库。将gtk include pathgtk library添加到eclipse。

step to compile gtk in windows using eclipse