Shoken Startup Blog

KitchHike Founder/CTO

初めての共有ライブラリ

Cプログラムの共有ライブラリのリンク関係で困った。shared library。


共有ライブラリは、
1、コンパイル時にリンクを張って
2、実行時にあらかじめ指定されたパスから探す


Cのプログラムをgccでコンパイル時に、共有ライブラリにリンクを張る方法

gcc -L'ディレクトリ' -l'ファイル'

例
$gcc cvsample.c -o cvsample -L/usr/local/lib -lcxcore -lcv -lhighgui -lcvaux

実行時に、ライブラリが見えているか確認

$dll cvsample

見えてなかったら、そのライブラリまでのパスを通す。


一時的な方法

$export LD_LIBRARY_PATH=/usr/local/lib

確認
$echo $LD_LIBRARY_PATH


または、/etc/ld.so.confに書く
Ubuntuにはld.so.confが無いので、作成する。

$ sudo vi /etc/ld.so.conf

確認
$ cat /etc/ld.so.conf
/usr/local/lib

$ sudo /sbin/ldconfig -v #リンクの結合関係を決定する


もっと詳しく
共有ライブラリお作法まとめ - Higepon’s blog - Mona OS and Mosh