インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
ここでは、ツールやライブラリーとのリンクを制御、カスタマイズするオプション、およびリンカーへの出力を定義するオプションについて説明します。
このセクションでは、コンパイル時に指定され、リンク時に有効になるオプションについて説明します。
コンパイル時に、リンカーのみにオプションを渡すには、link オプションを使用します。次に例を示します。
icl a.cpp libfoo.lib /link -delayload:comct132.dll
この例では、libfoo.lib ライブラリーは a.cpp とリンクされるべきものとしてコンパイラーに認識されるため、コマンドラインに link オプションを付ける必要はありません。しかし、-delayload:comct132.dll はコンパイラーによって認識されないため、link オプションを使用してリンクします。Qoption オプションを使用して、リンカーを含むさまざまなツールにオプションを渡すことができます。 また、#pragma comment を使用してオプションをリンカーに渡すこともできます。次に例を示します。
#pragma comment(linker, "/defaultlib:mylib.lib")
または#pragma comment(lib, "mylib.lib")
どちらの例もリンク時に mylib.lib にリンクするようコンパイラーに指示します。
このセクションでは、コンパイル時に指定され、ld リンカーの出力を定義するためリンク時に有効になるオプションについて説明します。リンカーに関する詳細は、ld man ページを参照してください。
オプション |
説明 |
---|---|
-Ldirectory |
directory で指定したディレクトリーを検索してライブラリーを探すようリンカーに命令します。 |
-Qoption,tool,list |
一連のコンパイル処理の中で、アセンブラーやリンカーなど別のプログラムに引数リストを渡します。 |
-shared |
このリンカーオプションは、実行ファイルの代わりに、動的共用オブジェクト (DSO) をビルドするようにコンパイラーに指示します。 |
-shared-libgcc |
-shared-libgcc は、-static-libgcc と逆の効果が得られます。このオプションが使用されると、標準の GNU* ライブラリーが動的にリンクされ、-static オプションが使用された場合の静的リンクを無効にします。 注注: デフォルトでは、すべての C++ 標準およびサポート・ライブラリーは動的にリンクされます。 |
-shared-intel |
インテルが提供するライブラリーをすべて動的にリンクします。 |
-static |
ライブラリーをすべて静的にリンクします。 -static を使用していない場合:
|
-static-libgcc |
標準の GNU* ライブラリーをすべて静的にリンクします。 |
-Bstatic -Bdynamic |
どちらのオプションも、コマンドラインで渡されるライブラリーのリンク動作を制御するため、リンカーのコマンドライン中で指定されます。 |
-static-intel |
インテルが提供するライブラリーをすべて静的にリンクします。-shared-intel の逆です。 |
-Wl,optlist |
このオプションは、オプションのカンマ区切りリスト (optlist) をリンカーに渡します。 |
-Xlinker val |
このオプションは、リンカーオプション、オブジェクト、またはライブラリーなどの値 (val) を直接リンカーに渡します。 |