便宜上、以下の関連するマンページを追加しました。私はわかりません-Wl、-rpath -Wl、
マイ(MIS)の理解最初:私はそれはそれは-rpath
オプションの引数であることを意味し,
前に来るので二-Wl
は別のオプションではないことを意味し、,
でオプションを分離する必要がある場合。
私は-rpath
が-Wl,.
引数を持つ方法を理解できません!私の心の中で理にかなって何
はこれを次のようになります。
-Wl,-rpath .
これは、現在のディレクトリ引数と-rpathリンカオプションを呼び出す必要があります。
男のGCC:
-Wl、 リンカにオプションとしてオプション
渡します。オプションにコンマが含まれている場合、 は、複数のオプションに分割され、 カンマになります。この構文を使用して、 オプションに引数を渡すことができます。例えば、 の場合、
-Wl,-Map,output.map
は、-Map output.map
をリンカーに渡します。 GNUリンカを使用すると、 `-Wl、-Map = output.map 'と同じ効果を得ることができます。
男LD:
-rpath = DIR
ランタイムライブラリの検索パスにディレクトリを追加します。これはELF実行可能ファイル を共有オブジェクトにリンクするときに使用される です。すべての-rpath 引数が連結され、実行時リンカーに が渡されます。実行時リンカーは、 を使用して実行時に共有オブジェクトを検索します。 -rpathオプションは、 共有オブジェクトが共有オブジェクトに必要な であることを明示的に指定した場合にも使用されます。 がリンクに含まれています。
私は今、リンカに物を渡している間にオプションや引数を区別していないことを理解しています。単なる文字列です。だから二番目の-Wlは冗長です!ありがとう:) – Blub
@Blub:それは冗長ではありません!これは別の形式です。あなたは '-Wl、-rpath、.' *、もしくは' -Wl、-rpath -Wl、.'と言っています。正確に2つのうちの1つ、あなたは何も省略できません。 –