无法编译GTK程序

时间:2013-08-21 04:10:37

标签: c linux gtk

操作系统:Fedora 18
内核:3.6.10-4.fc18.x86_64

我无法编译简单的GTK程序:

#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;
}

命令:

[root@localhost dir]##gcc -o graph graph.c `pkg-config --libs --cflags gtk+-2.0`
/lib64/libGL.so.1: undefined reference to _glapi_tls_Dispatch
collect2: error: ld returned 1 exit status

1 个答案:

答案 0 :(得分:3)

您需要针对使用命令pkg-config --libs --cflags gtk + -2.0找到的库进行构建,因此您需要执行命令以获取完整的库并包含目录路径,GCC将获取输出(libs和cflags)作为参数,但GCC不会理解该命令。因此,您需要执行以下操作 -

           gcc -o graph graph.c `pkg-config --libs --cflags gtk+-2.0`

根据问题更新进行修改:

在Fedora 18上 - 需要更新mesa-libglapi,以修复_glapi_tls_Dispatch未定义的引用问题,使用mesa-libglapi-9.0.1-1.fc18.x86_64版本,这个未定义的引用问题仍然存在。更新库可修复问题 -

          yum update mesa-libglapi