无法编译GTK程序

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

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

#include  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 

你需要使用命令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