コンパイラーの起動

コマンドラインを使用する前に

コマンドラインを使用する前に、特定の環境変数を設定する必要があります。詳細は、「コンポーネントの場所の指定」を参照してください。

異なるコンパイラーとドライバー

以下の表は、異なるコンパイラー・フロントエンドとドライバーの情報を示します。

Microsoft* Visual C++* (MSVC) 互換オプションを使用するには、dpcpp-cl を使用します。
コンパイラー 説明 Linux* ドライバー Windows* ドライバー

インテル® DPC++ コンパイラー

Clang フロントエンドの C++ および Khronos* SYCL* コンパイラー

dpcpp

dpcpp (clang 互換)

dpcpp-cl (clang-cl 互換)

インテル® C++ コンパイラー

Clang フロントエンドの C++ コンパイラー、OpenMP* オフロードをサポート

icx (C)

icpx (C++)

icx

コマンドラインからのコンパイラーの使用

以下の OS/言語別の起動方法でコンパイラーを使用します。

統合開発環境 (IDE) からコンパイラーを使用することもできます。Microsoft* Visual Studio* の使用に関する詳細は、「Microsoft* Visual Studio* の使用」を参照してください。Eclipse の使用に関する情報は、「Eclipse* の使用」を参照してください。

Linux*

icx/icpx (C/C++) または dpcpp (DPC++) を使用してコンパイラーを起動し、LLVM C/C++/DPC++ ソースファイルをコンパイルします。

  • dpcpp を使用してコンパイラーを起動した場合、コンパイラーは DPC++ ライブラリーと DPC++ インクルード・ファイルを使用して DPC++ ソースファイルをビルドします。dpcpp を C ソースファイルに使用すると、ファイルは DPC++ ファイルとしてコンパイルされます。dpcpp を使用して、DPC++ オブジェクト・ファイルをリンクします。
  • icx を使用してコンパイラーを起動した場合、コンパイラーは LLVM C ライブラリーと LLVM C インクルード・ファイルを使用して LLVM C ソースファイルをビルドします。icx を C++ ソースファイルに使用すると、ファイルは LLVM C ファイルとしてコンパイルされます。icx を使用して、LLVM C オブジェクト・ファイルをリンクします。
  • icpx を使用してコンパイラーを起動した場合、コンパイラーは LLVM C++ ライブラリーと LLVM C++ インクルード・ファイルを使用して LLVM C++ ソースファイルをビルドします。icpx を C ソースファイルに使用すると、ファイルは LLVM C++ ファイルとしてコンパイルされます。icpx を使用して、LLVM C++ オブジェクト・ファイルをリンクします。

    icpx をメイン・コンパイラーとして使用する場合、リンク段階で -fsycl を追加する必要があります。そうしないと、メインバイナリーでオフロードカーネルを利用できません。

icx/icpx (C/C++) または dpcpp (DPC++) コマンドは次の処理を行います。

  • 入力ソースファイルをコンパイルしてリンクする
  • 1 つの実行ファイル (a.out) を現在のディレクトリーに生成する

Windows*

icx (C/C++) または dpcpp-cl (DPC++) コマンドを使用して、コマンドラインからコンパイラーを起動できます。このコマンドは、次の操作を行います。

  • 入力ソースファイルをコンパイルしてリンクする
  • オブジェクト・ファイルを生成して対応するソースファイル名を割り当てる (拡張子は .obj)
  • 実行ファイルを作成してコマンドライン上の最初の入力ファイル名を割り当てる (拡張子は .exe)
  • すべてのファイルを現在のディレクトリーに配置する

コンパイラーでコンパイルする際に、タスクを完了するため多くのツールが呼び出され、特定のツールに固有の診断が出力されることがあります。例えば、リンカーは、グローバル参照を解決できなかったときに、メッセージを返すことがあります。watch オプションは、どのコンポーネントでエラーが発生しているのか特定するのに役立ちます。

コマンドライン構文

次のコマンドを使用してコンパイラーを起動します。 C/C++ プロジェクトの場合:

// (Linux*)
{icx/icpx} [options] file1 [file2...]
// (Windows*)
icx [options] file1 [file2...][/link link_options]
DPC++ プロジェクトの場合:
// (Linux*)
dpcpp [options] file1 [file2...]
// (Windows*)
dpcpp-cl [options] file1 [file2...][/link link_options]

引数

説明

options

1 つ以上のコマンドライン・オプションを示します。Linux* システムでは、コンパイラーは、ハイフン (-) が先頭にある 1 文字以上の文字をオプションとして認識します。Windows* の場合、オプションはスラッシュ (/) から始まります。これには、リンカーオプションも含まれます。

コンパイラーを起動する際にオプションは必要ありません。コンパイラーのデフォルト動作では、コンパイラーの起動時に、一部のオプションがデフォルトでオンになります。

file1, file2...

コンパイラーで処理する 1 つ以上のファイルを示します。複数のファイルを指定する場合は、スペースをファイルの区切り文字として使用します。

/link (Windows*)

/link に続くオプションはすべてリンカーに渡されます。リンカーに渡さないコンパイラー・オプションは、link の前に指定しなければなりません。

コマンドラインを使用してコンパイラーを起動するほかの方法

OpenMP* オフロードの有効化

C++ アプリケーションで OpenMP* オフロードを有効にするには、以下のコマンドでコンパイラーを起動します。

DPC++ アプリケーションで OpenMP* オフロードを有効にするには、以下のコマンドでコンパイラーを起動します。

関連情報