[Linux] コンパイルはできるのに、実行できない件

この記事は3年以上前に書かれた記事です。情報が古い可能性があります。

Linuxでソースをダウンロードしてきてコンパイル(make)してインストール(install)して、そこまでは正常なのに、いざ実行となったときに失敗することがある。その原因は多くの場合、ライブラリ不足。ライブラリもインスコしたはずなのに!という場合は、そのライブラリパス(LD_LIBRARY_PATH)が通ってないというオチが多い。

まず、そのプログラムを確認。

$ ldd (プログラム名)

これで not found となっているライブラリが犯人。

そのライブラリのあるパスを /etc/ld.so.conf に追加する。/etc/ld.so.conf.d がある場合は、その下に(任意の名前).conf をつくって、そこにライブラリのパスを書く。

そして、

# ldconfig

失敗する場合はおそらく /sbin/ldconfig

ユーザライブラリ系は大体 /usr/local にインスコするのがよさげ。で、ld.so.confに /usr/local/lib を書いておけば、make install した時点でパスが通ってるので、そのまま実行できる。

タイトルとURLをコピーしました