共有ライブラリ

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
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。