極楽とんぼのロボット製作記

情報工学系大学院生がロボットとその周辺技術や身の回りの出来事について紹介するブログ

PCLコンパイル中に「/usr/lib/ld: -lvtkproj4 が見つかりません」と出る

PCL(Point Cloud Library)をコンパイルしているときに
/usr/lib/ld: -lvtkproj4 が見つかりません
とエラーが出て、コンパイル出来ないときがあります。
個人的にかなり詰まったので、書き残します。

libvtkproj4が入っているかどうかを確認する

$ ldconfig -p | grep libvtkproj4

と打って、ライブラリが本当に入っているかどうか確認しましょう。

ライブラリが入っていない場合

VTKに関するライブラリを入れても良いのですが、apt-getを使えば依存関係にあるライブラリ(PCLの場合はBoost,Eigen,VTK,FLANNなど)が自動的にインストールされるので、こちらを使います。
下記URLを参考に
Prebuilt binaries for Linux - Point Cloud Library (PCL)

$ sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
$ sudo apt-get update
$ sudo apt-get install libpcl-all

とすればPCLがインストールされます。改めてコンパイルしてください。

ライブラリが既に入っているにもかかわらず、エラーが出る場合

例えば

$ ldconfig -p | grep libvtkproj4
 libvtkproj4.so.5.10 (libc6,x86-64) => /usr/lib/libvtkproj4.so.5.10

このようにlibvtkproj4.so.*が見つかったと出た場合は、ライブラリへのパスがうまく通っていない可能性があります。この場合は

$ ln -s /usr/lib/libvtkproj4.so.5.10 /usr/lib/libvtkproj4.so

のようにlibvtkproj4.soへのリンクを貼ることで解決できます。

参考サイト
d.hatena.ne.jp