用途:在 macOS 的 MetaTrader 5 Wine 环境中,通过命令行调用 MetaEditor64.exe 编译 MQL5 指标、脚本和 EA(.mq5)及库文件(.mqh)。核心思路是把 MQL5 目录映射为 X: 盘,避免路径中 "Program Files" 的空格造成编译静默失败。建议在编辑任何 .mq5/.mqh 文件后,或用户要求编译、构建、测试、验证改动时主动使用。
前置设置:需一次性创建 X: 盘符号链接,将 Wine 瓶 dosdevices 中的 x: 指向 MQL5 目录,可用 ls -la 检查映射是否存在。
使用方法:先把标准路径转为 X: 盘路径(去掉 Program Files/MetaTrader 5/MQL5/ 前缀,改为 X:\),再以 wine64 调用 MetaEditor64.exe,并加上关键参数 /log 开启日志、/compile:"X:\..." 指定源文件、/inc:"X:" 指定包含目录。
验证与限制:Wine 即使编译成功也返回退出码 1,因此不能只看退出码,必须检查同目录下生成的 .ex5 文件时间戳,以及与被编译文件同目录的 .log(如 Fvg.mq5 生成 Fvg.log)是否显示 0 errors、0 warnings。若出现 include 文件找不到,通常是没有使用 X: 盘路径;退出码 0 却没有 .ex5,通常因路径含空格或特殊字符;找不到 X: 盘则说明符号链接未创建。具体命令、示例路径与完整排错步骤见来源资料,此处不逐条抄录。