GCC 3.4 を /opt/gcc-3.4 にインストールしました。これを使用して、GCC 4 と互換性のないレガシー コードをコンパイルしています。これは、C(++) 標準ライブラリ、binutils、およびユーティリティの古いバージョンも意味します。ライブラリ。
一部のライブラリでは問題なく動作しますが、libtiff のコンパイル時に失敗します。これは、/usr/lib 内のシステム ライブラリを選択するためです (以下の出力を参照)。これは autotools/configure の問題かもしれませんが、よくわかりません。構成スイッチまたは環境変数が見つかりません。システム /usr/lib/libc.so を変更したくありません。
では、/opt/gcc-3.4.4/lib の標準ライブラリにリンクし、/lib と /usr/lib を完全に無視するにはどうすればよいでしょうか?
make の出力 (抜粋):
libtool: リンク: g++ -shared -nostdlib /usr/lib/crti.o /opt/gcc-3.4.3/lib/gcc/i686-pc-linux-gnu/3.4.3/crtbeginS.o .libs/tif_stream. o -Wl,--アーカイブ全体 ../port/.libs/libport.a -Wl,--アーカイブ全体なし -Wl,-rpath -Wl,/home/jason/d0src34/prereq/tiff-3.9 .4/libtiff/.libs -Wl,-rpath -Wl,/opt/gcc-3.4.3/lib -Wl,-rpath -Wl,/home/jason/d0src34/prereq/usr/lib -Wl,-rpath -Wl,/opt/gcc-3.4.3/lib ../libtiff/.libs/libtiff.so -L/usr/lib/usr/lib/libjpeg.so -lz -L/opt/gcc-3.4.3/lib/gcc/i686-pc-linux-gnu/3.4.3 -L/opt/gcc-3.4.3/lib/gcc /i686-pc-linux-gnu/3.4.3/../../../opt/gcc-3.4.3/lib/libstdc++.so -L/home/jason/Downloads/gcc-3.4.3/ build/i686-pc-linux-gnu/libstdc++-v3/src -L/home/jason/Downloads/gcc-3.4.3/build/i686-pc-linux-gnu/libstdc++-v3/src/.libs -L /home/jason/Downloads/gcc-3.4.3/build/gcc -lm -lc -lgcc_s /opt/gcc-3.4.3/lib/gcc/i686-pc-linux-gnu/3.4.3/crtendS.o /usr/lib/crtn.o -Wl,-soname -Wl,libtiffxx.so.3 -o .libs/libtiffxx.so.3.9.4
/home/jason/d0src34/prereq/usr/bin/ld: /usr/lib/libc.so: ファイル形式が認識されません。リンカースクリプトとして扱う
/home/jason/d0src34/prereq/usr/bin/ld:/usr/lib/libc.so:5: 解析エラー