`glib_major_version' への未定義の参照

`glib_major_version' への未定義の参照

Ubuntu 10.10でリンクするときにこの「未定義の参照」エラーを解決する方法を教えてください。

conftest.c:(.text+0x4): `glib_major_version' への未定義の参照

conftest.c:(.text+0xd): `glib_minor_version' への未定義の参照

conftest.c:(.text+0x16): `glib_micro_version' への未定義の参照

collect2: ld は 1 の終了ステータスを返しました

.bashrc に「export LD_LIBRARY_PATH=/usr/lib:/lib:$LD_LIBRARY_PATH」を追加しました。

$ ls -la libgl*.*

lrwxrwxrwx 1 ルート ルート 23 2010-12-17 18:29 libglib-2.0.so.0 -> libglib-2.0.so.0.2600.0

-rw-r--r-- 1 ルート ルート 842208 2010-09-27 16:16 libglib-2.0.so.0.2600.0

/lib $ pwd

/ライブラリ

しかし、それでは問題は解決しません。どうすればいいでしょうか?

答え1

コンパイルするためにどのコマンドを実行していますか?

このエラーの原因となる他のエラーはありますか?


私もあなたと同じバージョンのファイルを持っており、そこにはそれらのシンボルが含まれています。

$ ls -l libglib*
lrwxrwxrwx 1 root root     23 2010-12-05 06:03 libglib-2.0.so.0 -> libglib-2.0.so.0.2600.0
-rw-r--r-- 1 root root 842208 2010-09-28 09:16 libglib-2.0.so.0.2600.0
$ nm -D libglib-2.0.so.0.2600.0 | grep version
00073730 T glib_check_version
000c849c R glib_major_version
000c84a4 R glib_micro_version
000c84a0 R glib_minor_version

glib独自のプログラムをコンパイルしていますか? おそらく、オプションを追加してリンカーにリンクするように指示する必要があるだけです-lglib-2.0

を実行している場合は
gcc -o conftest conftest.c
gcc -o conftest -lglib-2.0 conftest.c代わりに を実行する必要があります。

または、-lglib-2.0に追加することもできますLDFLAGS


他の人のプログラムをコンパイルしていますか? を使用している可能性がありますpkgconfig。 の中に混乱を招くものがある可能性があります/usr/local

他のプログラムやライブラリを自分でインストールしましたか? おそらく、 に自動的にインストールされたものでしょうか/usr/local/lib?

何がcat /usr/lib/pkgconfig/glib*書いてある?
何がcat /usr/local/lib/pkgconfig/glib*書いてある?

LD_LIBRARY_PATHを含めるにはの値を変更する/usr/local/libか、 を変更するかPKG_CONFIG_PATH、 にいくつかのオプションを追加することが必要になる場合があります./configure

答えはあなたが何をしているかによって異なります。

関連情報