お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2012-06-13 22:29:22

supitun
新しいメンバ
登録日: 2012-06-13

[緊急]libgdkのコンパイルエラーについて

ubuntuの初心者です。どうすればいいのか分からなくて困っています。
libgtk2.0, libgtkglext などをインストールしてコンパイルしようと思ったところ、
以下のようなエラー文がでました。

/usr/bin/ld: /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgtk-x11-2.0.so: undefined reference to symbol 'gdk_pixmap_new'
/usr/bin/ld: note: 'gdk_pixmap_new' is defined in DSO /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgdk-x11-2.0.so so try adding it to the linker command line
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgdk-x11-2.0.so: could not read symbols: Invalid operation
collect2: ld はステータス 1 で終了しました

このエラーの解決方法を、なるべく詳しくご教授いただけると嬉しいです。

オフライン

 

#2 2012-06-13 22:54:05

vbk
メンバ
From: Lake Hamana in Hamamatsu
登録日: 2009-12-22

Re: [緊急]libgdkのコンパイルエラーについて

supitun による投稿:

libgtk2.0, libgtkglext などをインストールしてコンパイルしようと思ったところ、
以下のようなエラー文がでました。

実行したコマンドなど(具体的に何を実行したのか)を明示すると、いいアドバイスを期待できます。
また、もし可能であれば、何をコンパイルしようとしたのかといった説明があると、より良いと思います。

supitun による投稿:

/usr/bin/ld: /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgtk-x11-2.0.so: undefined reference to symbol 'gdk_pixmap_new'
/usr/bin/ld: note: 'gdk_pixmap_new' is defined in DSO /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgdk-x11-2.0.so so try adding it to the linker command line
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgdk-x11-2.0.so: could not read symbols: Invalid operation
collect2: ld はステータス 1 で終了しました

エラーから推測するに、GTK+2ライブラリーとのリンクがうまく行えていないようですが、コンパイラーに、GTK+2ライブラリーとリンクするための引数を指定していますか?
GTK+2のリファレンスマニュアルを参考に、もう一度コマンドを確認してみてください。
http://developer.gnome.org/gtk/2.24/gtk-compiling.html

オフライン

 

#3 2012-06-13 23:01:05

supitun
新しいメンバ
登録日: 2012-06-13

Re: [緊急]libgdkのコンパイルエラーについて

vbkさん、お返事ありがとうございます。

実行したコマンドですが、
http://stat.scphys.kyoto-u.ac.jp/gls.html
のサイトにあるGLSというものを使おうとしました。サイトのやり方に沿って、
シェルスクリプトglsというものを作り、
$ gls ファイル名
でコンパイルしたところ先程のエラーがでました。シェルスクリプトglsの内容は以下のようなものです。

#!/bin/sh
if g++ -o $1 $1.cpp -I/usr/include/X11 -I/usr/local/include/ -I/sw/include `pkg-config --cflags gtk+-2.0 gtkglext-1.0` -L/usr/local/lib/ -L/sw/lib `pkg-config --libs gtk+-2.0 gtkglext-1.0` -lglut -lstat2 -lgls; then
    echo "---------------------------"
    echo "         Complied !!       "
    echo "---------------------------"
else
    echo "---------------------------"
    echo "          Error !!         "
    echo "---------------------------"
    exit
fi

どうかよろしくお願いいたします。

オフライン

 

#4 2012-06-14 16:49:42

vbk
メンバ
From: Lake Hamana in Hamamatsu
登録日: 2009-12-22

Re: [緊急]libgdkのコンパイルエラーについて

g++に下のフラグを追加するとコンパイルが通ると思います。

コード:

-Wl,--no-as-needed

このフラグについては下のスレッドでも簡単に説明しています。
https://forums.ubuntulinux.jp/viewtopic.php?id=13673

本当であれば、原因を細かく調べて最適な方法を見つけたほうがいいのでしょうけど。

オフライン

 

#5 2012-06-14 18:22:21

supitun
新しいメンバ
登録日: 2012-06-13

Re: [緊急]libgdkのコンパイルエラーについて

vbkさん、お返事ありがとうございます。
無事、コンパイルすることができました。
とても、助かりました。本当に有難うございます。

オフライン

 

Board footer

Powered by FluxBB