В этом посте речь пойдет о работе с компилятором MQL5 из командной строки. Отдельный компилятор может быть полезен, например, при использовании внешнего редактора.
Преамбула
После очередного рефакторинга моего проекта, при компиляции стал вылетать Metaeditor. Разобравшись в ситуации выяснил, что виной тому оптимизатор. В режиме отладки все работает.
Скачиваем компилятор
После 900 билда компилятор встроили в metaeditor. Поэтому качаем по одной из ссылок из этого поста https://www.mql5.com/ru/forum/21374 .
Делаем BAT файл
Создаем отдельную папку на рабочем столе (именно на рабочем столе, иначе хоткей не сработает) кладем туда компилятор и в ней же делаем .bat файл для запуска:
color 17 mode con:cols=124 lines=50 mql.exe /o /mql5 /i:"Путь к каталогу данных\mql5" "Путь к каталогу данных\mql5\experts\myproject.mq5" pause
Первые 2 строчки это настройки окна вывода, специально делаем пошире, чтобы видеть сообщения компилятора в одну строчку.
Ключ /o указывает на использование оптимизатора компилятора.
/i - задает рабочий каталог, это важно для корректного нахождения путей указываемых в include
"Путь к каталогу данных" берем из Metaeditor, меню "Файл"->"Открыть каталог данных" и копируем его из поля "Адрес" .
В одной из систем у меня он примерно такой:
C:\Users\1\AppData\Roaming\MetaQuotes\Terminal\D0E8209F7789199AF727DE81727B1F626A076
Настраиваем сочетание клавиш
По правой кнопке делаем ярлык для BAT файла, в свойствах указываем сочетание клавиш для быстрого запуска. Я взял незанятое: Shift-Alt-1
Готово! Пишем код и компилируем его по сочетанию клавиш.
Улучшения
Можно завести несколько батников и сочетаний клавиш для компиляции разных программ.
Кстати, дополнительным преимуществом использования внешнего компилятора, является скорость компиляции. Даже с включенным режимом оптимизации мой проект компилируется за 0.5 - 0.6 сек. В Metaeditor'е компиляция занимала 9-10 секунд.
P.S. Но все-таки, из-за скорости, есть определенные сомнения насчет того, что оптимизатор из командной строки действительно работает.