桜、抹茶、白、日記

名古屋市在住のC++使いのcoderの日記だったもの。

debuginfo

d:id:youandi:20060710#p2
RHEL系の場合*1、各種ライブラリのデバッグ情報はdebuginfoパッケージに収録されているので、別途ソースコードからコンパイル等をする必要もなく、パッケージのインストールのみでデバッグ情報*2が得られるようになります。

RHEL5 Client
ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Client/en/os/i386/
ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Client/en/os/x86_64/

CentOS*3
http://debuginfo.centos.org

今日職場のお方が、GTKソースコードからインストールして使おうとしているのを見かけて、どうしてソースコードからコンパイルしているのかを聞かずにTroubleShootに付き合っていたのですが、結局の所x86_64環境にて32bit版のライブラリを作成する為にgccに-m32オプションを渡しても、linkerには64bit版のライブラリのパスが渡ってしまい、リンクでこけていました。
結局linkerオプションを下記のように設定して解決。

$ ./configure --prefix=/usr/local/share/gtk-2.XXX CFLAGS=-m32 "LDFLAGS=-L/lib -L/usr/lib"

半ば強引ですが、こうする事で、

gcc -m32 ... -L/lib -L/usr/lib -L/lib64 -lgobject-2.0 ...

といった順番になって、32bit版の方を先に参照させました。
解決したので気分すっきりと帰宅するつもりが、帰り道にふと何故ソースコードからコンパイルしていたのか?と思い立ったのでしたorz ここ最近ドキュメント作成ばかりなのと、Linux開発環境に触るのは久し振りでちょっとwktkしてしまった自分も悪いのですが、結局解決するのに1時間も掛かってしまったので、もっと根本的な所に視点を持つようにしないとなぁ。

*1:RedHat系しか触らない人なので、SUSE系、Debian系他は不明。

*2:デバッガでバックトレースを表示した際に関数名が表示されるようになる

*3:kernel向けのdebuginfoは更新が遅かったりするので、SRPMパッケージをリビルドすれば作成可能