How to make Shared Library xxx.so
Write sources as usual
hoge.hpp
> void hoge();
libhoge.cpp
> #include "hoge.hpp"
> ...
> void hoge(){
> cout << "hoge" << endl;
> }
Compile
> g++ -shared libhoge.cpp -o libhoge.so ← デフォルトの出力は a.out
→ libhoge.so ができる。
※ makeによる自動コンパイルの便宜を考えると、
ソースの名前はあらかじめ libxxx.cpp の形式にしておくのがよい。
Use
main.cpp
> #include "hoge.hpp" ← これは必要。
> ...
> hoge(); ← 通常の .o と同じように使えばよい。
compile
> g++ main.o -lhoge
あるいは
> g++ main.o libhoge.so
→ a.out を得る。
usage
> a.out
ライブラリを独自のディレクトリに置いている場合
1. リンク時には -L が必要(g++への指示)
> g++ main.o -Llibdir -lhoge
あるいは直接パスを指定してもおk
> g++ main.o libdir/libhoge.so
2. 実行時にはあらかじめパスを通しておくことが必要(シェルへの指示)
> export LD_LIBRARY_PATH="libdir"
最終更新:2010年05月25日 00:32