Fedora 7 で bfd ライブラリを使う
binutils-devel がインストールされた状態で bfd ライブラリを使った C 言語のソース・コードをコンパイルするとエラーになる。
$ gcc -lbfd -Wall -o hige hige.c /tmp/cclX3Ssl.o: In function `dump_symbols': hige.c:(.text+0x17): undefined reference to `bfd_openr' hige.c:(.text+0x49): undefined reference to `bfd_check_format' hige.c:(.text+0x7e): undefined reference to `bfd_get_error' hige.c:(.text+0xa4): undefined reference to `bfd_close' hige.c:(.text+0x17b): undefined reference to `bfd_get_section_by_name' hige.c:(.text+0x242): undefined reference to `bfd_close' collect2: ld はステータス 1 で終了しました
どうやら /usr/lib64/libbfd.so (x86_64 の場合) がないためらしい。そこで、下記のようにしてリンクを作成。
$ pushd /usr/lib64 $ pwd /usr/lib64 $ sudo ln -s libbfd-2.17.50.0.12-4.so libbfd.so $ ls -l libbfd.so lrwxrwxrwx 1 root root 24 2007-10-29 08:04 libbfd.so -> libbfd-2.17.50.0.12-4.so*
リンクが存在していない理由があるのだろうけど、なぜだろう。。。