インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

リンカーにオプションを渡す

リンカーオプションの指定

ここでは、ツールやライブラリーとのリンクを制御、カスタマイズするオプション、およびリンカーへの出力を定義するオプションについて説明します。

Windows*

このセクションでは、コンパイル時に指定され、リンク時に有効になるオプションについて説明します。

コンパイル時に、リンカーのみにオプションを渡すには、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 にリンクするようコンパイラーに指示します。

Linux* および macOS*

このセクションでは、コンパイル時に指定され、ld リンカーの出力を定義するためリンク時に有効になるオプションについて説明します。リンカーに関する詳細は、ld man ページを参照してください。

オプション

説明

-Ldirectory

directory で指定したディレクトリーを検索してライブラリーを探すようリンカーに命令します。

-Qoption,tool,list

一連のコンパイル処理の中で、アセンブラーやリンカーなど別のプログラムに引数リストを渡します。

-shared

このリンカーオプションは、実行ファイルの代わりに、動的共用オブジェクト (DSO) をビルドするようにコンパイラーに指示します。

-shared-libgcc

-shared-libgcc は、-static-libgcc と逆の効果が得られます。このオプションが使用されると、標準の GNU* ライブラリーが動的にリンクされ、-static オプションが使用された場合の静的リンクを無効にします。

注: デフォルトでは、すべての C++ 標準およびサポート・ライブラリーは動的にリンクされます。

-shared-intel

インテルが提供するライブラリーをすべて動的にリンクします。

-static

ライブラリーをすべて静的にリンクします。

-static を使用していない場合:

  • /lib/ld-linux.so.2 がリンクされます。

  • その他のすべてのライブラリーは動的にリンクされます。

-static を使用している場合:
  • /lib/ld-linux.so.2 はリンクされません。

  • その他のすべてのライブラリーは静的にリンクされます。

-static-libgcc

標準の GNU* ライブラリーをすべて静的にリンクします。

-Bstatic

-Bdynamic

どちらのオプションも、コマンドラインで渡されるライブラリーのリンク動作を制御するため、リンカーのコマンドライン中で指定されます。

-static-intel

インテルが提供するライブラリーをすべて静的にリンクします。-shared-intel の逆です。

-Wl,optlist

このオプションは、オプションのカンマ区切りリスト (optlist) をリンカーに渡します。

-Xlinker val

このオプションは、リンカーオプション、オブジェクト、またはライブラリーなどの値 (val) を直接リンカーに渡します。