ノード:Compile mode, 次:, 上:Invoking libtool



コンパイルモード

コンパイルモードに対し,mode-argsは,`標準的な'オブジェク トファイルを作成するとき使用するコンパイルコマンドです.これらの引数は, Cコンパイラの名前で始まり,オブジェクトファイルのみを作成するための -cコンパイラフラグが含まれます.

libtoolは,ソースファイル名からディレクトリ要素を削除して出力ファイル 名を決定し,ソースコードの接尾子(例えば,Cソースコードに対する .c)をライブラリオブジェクト接尾子.loに置換します.

共有ライブラリをビルドする場合は,必要なPIC生成フラグがコンパイルコマ ンドに置換されます.-XCClinker flagを使用したり,リンカフ ラグ-Wl,flag-Xlinker flagを渡すことで,リ ンク指定のフラグをコンパイラドライバに渡すことが可能です.また, -Wc,flag-Xcompiler flagを使用することで, コンパイル指定のフラグを渡すことも可能です.

-staticオプションが与えられている場合は,libtoolが --disable-staticでコンフィグレーションされていた場合でも, .oファイルがビルされてます.

現在は-oオプションが,完全にサポートされていることに注意してく ださい.それがサポートされていないプラットフォームでは,(オブジェクト のロックと移動によって)エミュレートされるので,Makefileを少し編集する だけでlibtoolは本当に簡単に使用できます.入力例は以下のようになります.

     libtool gcc -c foo/x.c -o foo/x.lo
     
will do what you expect.

しかし,コンパイラが-c-oをサポートしていない場合,既存 の./x.oを上書きせずにfoo/x.cをコンパイルすることが不可能 なことに注意してください.そのため,ソースファイル./x.cがある場 合,./x.o(や./x.lo)が,サブディレクトリのあらゆる x.loの後で再作成されることを確実にするため,Makefileに依 存性の導入を必ず行ってください.

     x.o x.lo: foo/x.lo bar/x.lo
     
これは,プログラムやライブラリを作成するため,一時的に壊れたx.o の使用を試みないことを確実にします.それは,-c-oを同時 にサポートするプラットフォームで,不必要な再コンパイルを引き起こすかも しれませんが,それは,そうでないものに対して安全にする唯一の方法です.