http://www.gnu.org/software/libtool/manual/html_node/Creating-object-files.html
共有ライブラリ システムでは、libtool は、適切な PIC 生成フラグをコンパイル コマンドに挿入することにより、追加の PIC オブジェクトを自動的に生成します。
burger$ libtool --mode=compile gcc -g -O -c foo.c
mkdir .libs
gcc -g -O -c foo.c -fPIC -DPIC -o .libs/foo.o
gcc -g -O -c foo.c -o foo.o >/dev/null 2>&1
burger$
Libtool は、最初の実行時に PIC ライブラリ オブジェクト ファイルが格納される .libs ディレクトリを自動的に作成することに注意してください。
'burger' は共有ライブラリをサポートしており、それらをビルドするには PIC オブジェクトが必要なので、Libtool は今回 PIC オブジェクトをコンパイルし、libtool オブジェクトにそれを書き留めました。
# foo.lo - a libtool object file
# Generated by ltmain.sh (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/foo.o'
# Name of the non-PIC object.
non_pic_object='foo.o'
GCC の 2 回目の実行では、出力が破棄されることに注意してください。これは、コンパイラの警告が煩わしく重複しないようにするためです。両方の警告セットを表示する必要がある場合 (たとえば、'#ifdef PIC' 内に条件付きコードがある場合)、libtool のコンパイル モードに -no-suppress オプションを指定して抑制をオフにできます。
burger$ libtool --mode=compile gcc -no-suppress -g -O -c hello.c
gcc -g -O -c hello.c -fPIC -DPIC -o .libs/hello.o
gcc -g -O -c hello.c -o hello.o
burger$
これがお役に立てば幸いです。よろしくお願いします、
アロク