未だCentOS5を使っているといろいろと不都合が生じてきます。まず、最新のアプリケーションを使おうとすると、デフォルトで入っているライブラリ群が古く全くインストールできません。
今回はCentOS5.11にbzip2-1.0.6をインストールしてみます
ダウンロード
$ cd /usr/local/src $ wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz $ tar xzvfp bzip2-1.0.6.tar.gz $ cd bzip2-1.0.6
コンパイル
シェアードライブラリも同時にコンパイルします
まずは本体
$ make # make install
次にシェアードライブラリ
$ make -f Makefile-libbz2_so $ make gcc -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 blocksort.o huffman.o crctable.o randtable.o compress.o decompress.o bzlib.o /usr/bin/ld: blocksort.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC blocksort.o: could not read symbols: Bad value collect2: ld はステータス 1 で終了しました make: *** [all] エラー 1
ここでエラーが
解決方法
どうもfPICをつけてコンパイルしないとダメなようです
本体側も修正、Makefileを修正します
CFLAGS=-Wall -Winline -O2 -g $(BIGFILES) -fPIC # -fPICを追加 CXXFLAGS=-fPIC # 行追加
コンパイル
$ make clean $ make # make install
次にシェアードライブラリ。Makefile-libbz2_soを修正
CXXFLAGS=-fPIC # 行追加
コンパイル
$ make -f Makefile-libbz2_so # mv libbz2.so.1.0* /usr/local/lib