MetaEditorヘルプ

コンパイル

コンパイル

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

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

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

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

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

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

エラー

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

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

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

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

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

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

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

MetaEditorとは切り離して動く MQL4/MQL5 プログラムコンパイラ(MQL.exe)が提供されます。ターミナルとは別に配布されます。つぎの場所からダウンロード可能です。

コンパイラはいかなるフォルダからでもスタートします。

MQL.exeの再配布はフリーです。しかしながら、MQL4/MQL5 プログラムオブジェクト同様、いかなる改変、逆アセンブル、あるいは逆コンパイルも許可されません。

コンパイラはコマンドラインから起動し、コンパイルすべきファイの名前、パスを指定します。

コンパイラ起動例

C:\Compiler\>mql.exe C:\MyPrograms\script.mq5

2つの起動オプションがあります。

  • /s — このオプションを指定すると、プログラムコードシンタックスのみチェックしその結果を表示します。
  • /i :[パス] — このオプションは、クライアントターミナルの \MQL4 または \MQL5 ディレクトリを指定できます。このパラメータは、インクルードファイル( *.mqh)を使用したプログラムでは必要です。

オプションを指定したコンパイラ起動例

C:\Compiler\>mql.exe C:\MyPrograms\script.mq5 /i:C:\client_terminal\MQL5