lddコマンド e.g. cannot open shared object file (soが開けない)
make 作業中に, cannot open shared object file というメッセージが出たときは, その .so にアクセスできないことを意味するが、ではそれをどこに置けばよいか?
ldd [実行ファイル]
を打つと、それがリンクする動的ライブラリがフルパスで表示される。開けない場合は Not などと出ている。多くの場合、所定のディレクトリにある。
すなわち、不足しているといわれた so を それを参考に、該当するディレクトリにコピーすればよい。
たとえば、 ldd の結果、
$ ldd [実行ファイル]
/usr/lib/xxxx/A.so
/usr/lib/xxxx/B.so C.so :Not found
などと出ている場合、 ディレクトリ /usr/lib/xxxx/ に C.so をコピーすればいいんだな、という推測が立つ。