---
title: "コンパイル - プログラムの開発 - MetaEditorのヘルプ"
description: "コンパイルとは、MQL4/MQL5プログラムのソースコードを機械語に変換することを意味します。 その結果、実行可能プログラムファイル (* EX4 または *。EX5) を、トレードプラットフォームで起動することができます。... - コンパイル - プログラムの開発 - MetaEditorのヘルプ"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/ja/metaeditor/help/development/compile"
---

[MetaEditorのヘルプ](https://www.metatrader5.com/ja/metaeditor/help) → [プログラムの開発](https://www.metatrader5.com/ja/metaeditor/help/development) → コンパイル

# コンパイル

コンパイルとは、MQL4/MQL5プログラムのソースコードを機械語に変換することを意味します。 その結果、実行可能プログラムファイル (* EX4 または *。EX5) を、トレードプラットフォームで起動することができます。

コンパイルはいくつかの段階で構成されます。

- 語彙分析
- 構文解析
- セマンティック分析
- コード生成
- コードの最適化

> 任意のファイル (*.MQ4、*.MQ5 または *.MQH) はコンパイルでき、実行可能ファイル (*.EX4 または *。EX5)が、[メイン](https://www.metatrader5.com/ja/metaeditor/help/structure#main_file) MQ4/MQ5 プログラムファイルまたは[プロジェクト](https://www.metatrader5.com/ja/metaeditor/help/mql5storage/projects)をコンパイルした結果として取得できます。実行可能ファイルは、元のプログラムアルゴリズムを隠ぺいする、独自の形式で作成されます。コンパイル済み実行可能な EX4/EX5 ファイルは、ソース MQ4、MQ5 および MQH ファイルなしで配布することができます。 デバッグは、これなしでは不可能です。 また、デバッグプロセス中に取得した実行可能な EX4/EX5 ファイルを配布することは推奨されません。

実行可能プログラムファイルを取得するには、[メイン](https://www.metatrader5.com/ja/metaeditor/help/structure#main_file)ソースファイルまたはプロジェクト経由[ナビゲータ](https://www.metatrader5.com/ja/metaeditor/help/workspace/navigator)をクリックし![コンパイルします。](https://www.metatrader5.com/i/help/metaeditor/en/compile_icon.png)コンパイル[ファイル](https://www.metatrader5.com/ja/metaeditor/help/main_menu/main_menu_file#compile)メニューまたは F7 コンパイルプロセスプロトコルは、[ツールボックス] ウィンドウの[[エラー](https://www.metatrader5.com/ja/metaeditor/help/workspace/toolbox#errors) ] タブに表示されます。 コンパイル過程がエラーなしで渡された場合は、トレーディングプラットフォームで取得したプログラムを実行できます。

![プログラムのコンパイルと \[エラー\] タブでの結果の表示](https://www.metatrader5.com/i/help/metaeditor/en/compilation.png)

エラーまたはアラートがある場合は、[エラー] タブに表示されます。

コンパイルエラーのマーク![エラー](https://www.metatrader5.com/i/help/metaeditor/en/error_icon.png)エラータブ及び適切なコードの部分です。 実行可能プログラムファイルがありません (* EX4 または *.EX5) が発生した場合に作成されます。 エラーが発生した文字列に移動するには、エラーをダブルクリックするか、![その行に移動](https://www.metatrader5.com/i/help/metaeditor/en/go_to_line_icon.png)コンテキストメニューの [ライン] コマンドに移動します。 文字列とエラーが検出された列は、適切な列に表示されます。

マークされたアラート![アラート](https://www.metatrader5.com/i/help/metaeditor/en/warning_icon.png)アイコンは、潜在的なエラーの場所を示します。 誤って解釈する可能性のあるソースコードセグメント (たとえば、暗黙的な値型の変更) です。 このようなコード文字列には、エラーが発生した場合とまったく同じ方法で移動できます。

![情報](https://www.metatrader5.com/i/help/metaeditor/en/info_icon.png)アイコンは、たとえば、コンパイル中にアクセスされるプログラムのインクルードファイルに関するメッセージなど、さまざまな情報メッセージのスタンドです。

## コンパイルモード [#](#mode)

エディターには、コードの最適化を最大限におこなうモードと、最適化しないモードの2つのコンパイルモードがあります。

最適化を無効にすると、実行ファイルの作成に要する時間が大幅に短縮されます。このモードは、アクティブな開発段階において、書かれたコードを素早くチェックするために使用できます。そして、最終的なプログラムのコンパイル時に、最適化モードをONにすることで、最高のパフォーマンスを発揮できます。

モードの切り替えは、ツールバーの[Build（ビルド））]メニューやコンパイルコマンドメニューで行います。

![コンパイルモードの制御](https://www.metatrader5.com/i/help/metaeditor/en/compilation_mode.png)

プロジェクト設定の[Maximum optimization](https://www.metatrader5.com/ja/metaeditor/help/mql5storage/projects#properties)パラメータも同様の働きをします。

> コンパイルエラーの完全な説明は、MQL4/MQL5ヘルプに記載されています。アラートが発生した場合は、実行可能ファイルが生成されます。 しかし、アラートは、潜在的なコードエラーを示すため無視するべきではありません。コンパイル中に実行可能ファイル (*.EX4 または *。EX5) は、プログラムの[メインソースファイル](https://www.metatrader5.com/ja/metaeditor/help/structure#main_file)と同じディレクトリ または[プロジェクト](https://www.metatrader5.com/ja/metaeditor/help/mql5storage/projects)。に生成されます[サードパーティの ide での外部コンパイラ](https://www.metatrader5.com/ja/metaeditor/help/beginning/integration_ide)としてmetaeditor.exe を使用できます。.

## 異なるアーキテクチャのプロセッサ向けのコンパイル [#](#architecture)

最新のプロセッサは、数学的計算を大幅に高速化する一連の高度な命令を提供します（[AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions)、[AVX2](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions)、< /t4>[AVX512](https://en.wikipedia.org/wiki/AVX-512)、[FMA3](https://en.wikipedia.org/wiki/FMA_instruction_set)）。これらの命令はMQL5コンパイラでサポートされており、より効率的で高速なコードを生成できます。このような命令の使用はオプションです。

- 自分でアプリケーションを作成しており、目的のアーキテクチャをサポートするプロセッサ上で実行できることが確実な場合は、高度な命令を使用してアプリケーションをコンパイルできます。それによってパフォーマンスが向上します。
- 公共使用または販売用のプログラムを作成している場合は、X64通常モードの基本命令セットを使用してコンパイルします。これにより、アプリケーションとユーザーのハードウェアとの互換性が最大限に確保されます。

プロセッサでどの命令がサポートされているかを確認するには、[CPU-Z無料ユーティリティ](https://www.cpuid.com/softwares/cpu-z.html)を使用します。インストール後、CPUセクションを開いて[手順]フィールドを確認してください。

![CPU-Zを使用して、プロセッサがサポートしている命令を確認します。](https://www.metatrader5.com/i/help/metaeditor/en/cpu_z.png)

プロセッサアーキテクチャを選択するには、コンパイルメニューを使用します。次に[コンパイル]をクリックします。[MetaEditor設定](https://www.metatrader5.com/ja/metaeditor/help/beginning/settings#compiler)および[個別のプロジェクト設定](https://www.metatrader5.com/ja/metaeditor/help/mql5storage/projects#properties)でアーキテクチャを指定することもできます。

![プログラムをコンパイルするプロセッサアーキテクチャを選択します。](https://www.metatrader5.com/i/help/metaeditor/en/compilation_architecture.png)

アプリケーションがユーザーのプロセッサでサポートされていないアーキテクチャ用にコンパイルされている場合、アプリケーションを実行しようとすると、プラットフォーム ログに次のメッセージが出力されます。

```
your CPU architecture does not allow to run the file '<file-name>.ex5': AVX512 required, you have AVX2 only
```

制限：

- AVX512を搭載したプロセッサ向けにコンパイルされたプログラムは、[MQL5クラウドネットワーク](https://www.metatrader5.com/ja/terminal/help/algotrading/strategy_optimization#cloud)および[内蔵VPS](https://www.metatrader5.com/ja/terminal/help/virtual_hosting)ではまだサポートされていません。
- X64Regularでコンパイルされたファイルのみ[マーケット](https://www.mql5.com/ja/articles/385)にアップロードできます。これは、アプリケーションとユーザーのハードウェアの互換性を最大限に確保するために必要です。

## In this section

- [インテリジェントマネージメント](https://www.metatrader5.com/ja/metaeditor/help/development/intelligent_management)
- [検索と置換](https://www.metatrader5.com/ja/metaeditor/help/development/source_code_find)
- [スタイラー](https://www.metatrader5.com/ja/metaeditor/help/development/styler)
- コンパイル
- [MQL5クラウドプロテクタ: プログラムの高度な保護](https://www.metatrader5.com/ja/metaeditor/help/development/mql5_cloud_protector)
- [コードのデバッグ](https://www.metatrader5.com/ja/metaeditor/help/development/debug)
- [コードのプロファイル](https://www.metatrader5.com/ja/metaeditor/help/development/profiling)
- [AI Assistant コーディングアシスタント](https://www.metatrader5.com/ja/metaeditor/help/development/ai_assistant)
- [インクルードコードの生成](https://www.metatrader5.com/ja/metaeditor/help/development/generate_mqh)
- [C++ DLL の操作 (MS Visual Studio との統合)](https://www.metatrader5.com/ja/metaeditor/help/development/c_dll)
- [Pythonの操作](https://www.metatrader5.com/ja/metaeditor/help/development/python)
- [OpenCLサポート](https://www.metatrader5.com/ja/metaeditor/help/development/opencl)

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "https://www.metatrader5.com/ja/metaeditor/help", "name": "MetaEditorのヘルプ"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "https://www.metatrader5.com/ja/metaeditor/help/development", "name": "プログラムの開発"}}, {"@type": "ListItem", "position": 3, "item": {"@id": "https://www.metatrader5.com/ja/metaeditor/help/development/compile", "name": "コンパイル"}} ]}
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "MetaTrader 5: コンパイル", "acceptedAnswer": { "@type": "Answer", "text": "コンパイルとは、MQL4/MQL5プログラムのソースコードを機械語に変換することを意味します。 その結果、実行可能プログラムファイル (* EX4 または *。EX5) を、トレードプラットフォームで起動することができます。 コンパイルはいくつかの段階で構成されます。 語彙分析 構文解析..." } }] }
```
