- 565 名前:名無しさん@お腹いっぱい。 [2009/09/22(火) 21:06:47 ]
- libhoge.so.* という共有ライブラリがあった時、
gcc -o prog prog.c -lhoge ってやると、progから libhoge.so.*に動的リンク(lddで確認)されますが、 prog.cで、実際にはlibhoge.so.*の関数をひとつも使っていなくても 動的リンクされた状態でコンパイルされてしまいます。 一方、libhoge.aという静的ライブラリがあって、 gcc -o prog prog.c libhoge.a ってやったような場合は、prog.cの中でlibhoge.aの関数をひとつも使っていなければ、 libhoge.aの中身は使われず、libhoge.aを付けずに gcc -o prog prog.c でコンパイルしたのと同じバイナリができて、 無駄になりません。 動的リンクの場合でも、関数を使っていないなら、 -lhoge を付けても結果的には動的リンクしないバイナリが作成されるように できませんか?
|

|