1

OS: 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
4

1 に答える 1

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 では、_glapi_tls_Dispatch の未定義の参照の問題を修正するために、mesa-libglapi を更新する必要があります。ライブラリを更新すると問題が解決します -

          yum update mesa-libglapi
于 2013-08-21T04:34:27.090 に答える