MetaEditorヘルプ

コンパイル

コンパイル

コンパイルは、MQL5 プログラムソースコードを機械語に翻訳するプロセスです。このプロセスはいくつかのステージで構成されます。

  • 字句スキャン
  • 解析
  • 意味解析
  • コード生成
  • コード最適化

コンパイルが成功すると、クライアントターミナルで動くプログラムである実行可能ファイル (*.EX4 または *.EX5) を生成します。

  • どのファイル(*.MQ4、 *.MQ5 または *.MQH)でもコンパイルできますが、実行可能ファイル(*.EX4 または *.EX5)は、メイン MQ4 または MQ5 プログラムファイルのコンパイルでのみ生成されます。
  • 実行可能ファイルは、プログラムのソースアルゴリズムを隠ぺいした独自の形式で生成されます。
  • コンパイルされた EX4/EX5 実行可能ファイルは、MQ4、MQ5 または MQH ソースファイルなしで頒布可能です。ソースファイルがないとデバッグはできません。デバッギングで得られた EX4/EX5 ファイルは頒布しないことを推奨します。

コンパイルをスタートするには、「ナビゲータ」ウィンドウでソースファイルを開き、「compile_icon コンパイル」コマンド(メニュー「ファイル」⇒、「標準」ツールバー、または「F7」ホットキー)を押します。

コンパイルプロセスの結果は、ツールボックスの「エラー」タブに表示されます。このタブにエラーが表示されなければ、クライアントターミナルでプログラムをスタートできます。エラーとウォーニングメッセージは、その説明に独特のアイコンが付されています。

エラー

コンパイルエラーには エラー アイコンが「エラー」タブとコードの両方に付されます。このようなエラーが発生すると、実行可能ファイル(*.EX4 または *.EX5)は生成されません。エラーの行へ移動するには、メッセージをダブルクリックするか、コンテキストメニューの「Go to line当該行へ移動」コマンドを使用します。エラーが見付かった行番号とカラムがメッセージに表示されます。

コンパイルエラーの詳細は、MQL4/MQL5言語のヘルプトピックスに記載されています。

警告 アイコンで示されたアラートは、エラーが起きるかもしれない場所に表示されます。すなわち、コンパイラは誤って解釈されかねないソースコードの部分(例えば、数値型の暗黙的な変更)を指摘します。エラーのときと同様にその行へ移動できます。

ウォーニングを解決しなくても構いません。しかし勧められません。何故なら、エラーが発生する可能性を秘めているからです。

さらには、様々な情報のメッセージがジャーナルに示されます。それらにはアイコンが付されます。情報 例えば、コンパイル中にプログラムが参照するインクルードファイルが示されます。

コンパイルが成功して生成された実行可能ファイル(*.EX4 or *.EX5)は、プログラムソースコード(*.MQ4 または *.MQ5)のメインファイルと同じ場所に配置されます。

コマンドラインからのコンパイル

MetaEditorの実行可能ファイルは、外部エディタでソースコードでの作業中にコンパイラとして使用できます。コンパイラはコマンドラインから起動され、コンパイルするファイルのパスと名前が指定されます。

  • metaeditor.exe /compile:"<ソースファイルのフルパス>"
  • metaeditor64.exe /compile:"<ソースファイルのフルパス>"

"C:\Program Files\TradingPlatform\metaeditor64.exe" /compile:"C:\Program Files\TradingPlatform\MQL5\Scripts\myscript.mq5"

ディレクトリ内のファイルのバッチコンパイル

バッチコンパイルでは、パスをファイルではなくフォルダに設定します。指定したフォルダ内のすべてのソースコードファイルがコンパイルされます。サブフォルダは含まれません。

ソースファイルに既に適切なコンパイル済みのバージョンがある場合、再コンパイルは実行されません。

次の例は \MQL5\Scripts フォルダのバッチコンパイルを示します。

"C:\Program Files\TradingPlatform\metaeditor64.exe" /compile:"C:\Program Files\TradingPlatform\MQL5\Scripts"

インクルードファイルを含むカスタムMQL5/MQL4フォルダ

プログラムは、現在のプラットフォームの作業フォルダの外(たとえば、同じコンピュータ上の別のプラットフォームコピーの \MQL5フォルダ内)にある追加のインクルード(* .mqh)ファイルを使用できます。適切なコンパイルには「/inc」キーを使用してこのフォルダへのパスを指定します。

"C:\Program Files\TradingPlatform\metaeditor64.exe" /compile:"C:\Program Files\TradingPlatform\MQL5\Scripts" /inc:"C:\Program Files\TradingPlatform 2\MQL5"

コンパイルログ

コンパイル処理の詳細を知るには、追加的な「 /log」 キーを指定します。この場合、コンパイルログファイルの<ソースファイル名>.log が、ソースファイルを含むフォルダに作成されます。

"C:\Program Files\TradingPlatform\metaeditor64.exe" /compile:"C:\Program Files\TradingPlatform\MQL5\Scripts\myscript.mq5" /log
ログファイル: C:\Program Files\TradingPlatform\MQL5\Script\myscript.log

構文の確認

コンパイルせずにプログラムの構文を確認するには「 /s」及び 「 /log」 キーを使用してコマンドラインからMetaEditorを起動します(チェック結果がログファイルに表示されます)。

"C:\Program Files\TradingPlatform\metaeditor64.exe" /compile:"C:\Program Files\TradingPlatform\MQL5\Scripts\myscript.mq5" /s /log
確認結果ファイル:C:\Program Files\TradingPlatform\MQL5\Script\myscript.log