MetaEditor 帮助

编译

编译就是将MQL4/MQL5程序的源代码翻译成机器语言的过程。这个过程包括几个阶段:

  • 词法扫描;
  • 解析;
  • 语义分析;
  • 代码生成;
  • 代码优化。

一个成功编译的结果就是创建可以在客户端启动的程序的可执行文件(*.EX5)。

  • 任何文件(*.MQ4,*.MQ5或*.MQH)都可以被编译,但是可执行文件(*.EX4,*.EX5) 只能通过编译主要的 MQ5程序文件来生成。
  • 可执行文件是在其自身的隐藏程序源算法的封闭格式下创建的。
  • 编译后的可执行EX5文件可以被分发,而无需源MQ5或MQH文件。没有它们,是不可能调试的。建议不要分发调试后获得的EX5文件。

若要开始编译,通过“导航” 窗口打开源文件并执行“编译 编译” 在“文件”菜单或在“标准” 工具栏,或者按下"F7"键。

编译进程报告将会显示在“工具箱”窗口的“错误”标签。如果这个标签中没有错误,那么您可以启动客户端的程序。错误和警示信息在其描述附近,用特殊的图标进行标记:

错误

编译错误标记通过错误“错误”标签和代码中的图标。如果这种错误发生,可执行文件(*.EX5) 不会生成。要移动到错误行,鼠标左键双击该行,或执行“转到行转到行”指令在快捷菜单。发现错误的行号和列号,显示在相应的列。

在MQL4/MQL5语言的帮助主题中,给出编译错误的完整描述。

出现警报表示通过警报指向错误发生位置的图标。I.e.编译器指向源代码的一部分,它可能被错误的解释(例如,值类型的隐式变化)。您也可以转到与错误行一样的这样的代码行。

您可以不处理警告。但是这不推荐,因为它们指出了错误出现的潜在可能地方。

此外,各种信息性的消息显示在日志中。它们通过图标来标记信息。它们可以显示,例如,包括编译时程序提到的文件。

成功编译后生成的可执行文件(*.EX5),位于相同的地方,就是程序源代码(*.MQ5) 主要文件所在的位置。

命令行编译

客户端包括MQL程序编译器,它与MetaEditor - MQL4.exe分开运行。它位于程序端安装文件夹。

编译器可以从任意文件夹启动。启动它的唯一要求就是在同一目录下,要有MQL.dll (或它的 64位版本)。

您可以随意分布MQL.exe和MQL.dll文件。然而,您不可以做任何改动,拆卸或反编译这些文件,以及任何MQL程序物件。

编译器从命令行启动,指定路径和您想要编译的文件的名称。

运行编译器示例:

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

该文件有两个运行键:

  • /s ― 如果您使用该键运行编译器,它只会检查程序代码的语法,并显示相应的结果;
  • /i :[路径] ― 使用该键,您可以指定到客户端/MQL5 (/MQL4)目录的路径。 此参数是必须的,用于经常使用额外包含文件 (*.mqh)的程序。

通过额外键运行编译器的示例:

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