"gcc -m64" でリンク失敗
"-m64" でコンパイルしたのを実行しようとすると、見事に失敗。
% ./a.out ld.so.1: ./a.out: 重大なエラー: /opt/sfw/lib/libstdc++.so.6: ELF クラスが正しくありません: ELFCLASS32 %
なんてのが出ました。
これが、64ビットクラスでコンパイルしたバイナリと32ビットクラスとのリンクができずに失敗しているであろうことは容易に想像が付きます。
で、64ビットクラスのライブラリが無いと思ったのが間違いの始まり。
gccを全部"-m64"でコンパイルするのがええのかと思って、CFLAGSとか何やらとかに全部"-m64"つけてみたりしたけどダメ。
何度やってもダメ。
で、途方に暮れつつぐぐってると、
http://solaris.sunfish.suginami.tokyo.jp/Manuscript/SunWorld/200209/
でありました。
% setenv LD_LIBRARY_PATH /opt/sfw/lib % setenv LD_LIBRARY_PATH_64 /opt/sfw/lib/sparcv9 %
とかしてやればOK。