PBRTをインストールするときに詰まりまくったからメモしておく

CGレンダラであるPBRT(Physically Based Ray Tracing)をインストールするのに詰まりまくって半日潰してしまいました。。。ちなみにOSはUbuntu12.04。とりあえず,備忘録として乱文だけどメモしておきます。

基本はStanford Univ.の講義ページのまま。

インストールするもの

  • libtiff
  • zlib (参照ページにはないが,openexrかilmbaseをインストールするときに必要になる
  • ilmbase
  • openexr
  • pbrt

インストールの流れ

1. libtiff

    • gccコンパイラは4系でも大丈夫だったが,g++コンパイラは3系でないと動かず…というわけで,CXXを書き換えてインストールの流れ。
cd (フォルダ展開先)/tiff-3.8.2
CXX=g++-3.4
export CXX
./configure
make
sudo make install

しかし,makeの途中で以下のエラーが発生

/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
libtool: install: error: relink `libtiffxx.la' with the above command before installing it
make[2]: *** [install-libLTLIBRARIES] エラー 1
make[2]: ディレクトリ `/usr/local/src/tiff-3.8.2/libtiff' から出ます
make[1]: *** [install-am] エラー 2
make[1]: ディレクトリ `/usr/local/src/tiff-3.8.2/libtiff' から出ます
make: *** [install-recursive] エラー 1

コンパイラを再インストールしても治らなかったので,libtiff/Makefileの以下の行をコメントアウトし,再びmakeをすると通りました。

68:  am__append_2 = libtiffxx.la

及び

458: libtiffxx.la: $(libtiffxx_la_OBJECTS) $(libtiffxx_la_DEPENDENCIES) 
459: $(CXXLINK) $(am_libtiffxx_la_rpath) $(libtiffxx_la_LDFLAGS) $(libtiffxx_la_OBJECTS) $(libtiffxx_la_LIBADD) $(LIBS)

2. zlib

    • 特に詰まることがなく終了
cd (フォルダ展開先)/zlib-1.2.7
./configure
make
sudo make install

3. ilmbase

cd (フォルダ展開先)/ilmbase-1.0.2
CXX=g++
export CXX
./configure
make
sudo make install

4. openexr

cd (フォルダ展開先)/openexr-1.7.0
./configure
make
sudo make install

しかし,makeの途中でmemsetとかmemcpyが宣言されてない!旨のエラーが発生。該当するファイルには以下を追加し,再びmakeをすると通りました。

#include <string.h>

5. pbrt

cd (フォルダ展開先)/pbrt-v2/src
HAVE_LIBtIFF=1
make

以上で,インストール完了。