Скачать MetaTrader 5

Как скомпилировать MQL5 в сторонней программе Netbeans (Eclipse)?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Denis Savenko
60
Denis Savenko  

Здравствуйте. Пишу достаточно крупный кусок кода на MQL5, поэтому решил максимально систематизировать разработку. Сейчас генерирую классы из UML через Umbrello. Дальше разрабатываю в NetBeans. Автодополнение, нахождение ошибок, навигация по коду, все работает отлично - разрабатывать очень удобно.

Но не компилируется.  

Для запуска дебага, нужно как-то запустить и собрать код. Подскажите, пожалуйста, как это лучше сделать? Я не очень селен в сборке и других связанных с этим темах, обычно собирал все программы с++ на gcс с стандартными параметрами. Я так понимаю есть компилятор MQL5 mql64.exe. Я его могу указать как стандартный компилятор С++. Что тогда мне указывать как сборщик? Для запуска нужно еще указывать обязательно что то для Make и отладчика. Если я указываю mql64.exe, то конечно ничего не собирается, выдает такой код:

MQL4/MQL5 Compiler x64 build 1101 (27 Mar 2015)
Copyright 2001-2015, MetaQuotes Software Corp.
-f : information: Compiling '-f'
(1,1) : error 208: no executable file produced
(0,0) : error 135: can't open "-f" program file
 : information: Result 2 error(s), 0 warning(s)
Time: 16 ms

СОБРАТЬ FAILED (значение выхода -1,, общее время: 74ms)

Скорее всего глупо было туда указывать компилятор, но подскажите, пожалуйста, может кто разрабатывает не в стандартном редакторе MQL5? Что использовать в таких случаях, что указывать? А то не хочется писать в NetBeans, а потом открывать MetaEditor и там все компилировать, хотя есть подозрения, что так и придется делать.

Andrey Dik
12013
Andrey Dik  

Укажите в свойствах компилятора что то типа:

D:\MT5\mql64.exe "%f"
где диск и папка ваши конечно. Может быть пригодится.
Denis Savenko
60
Denis Savenko  
Andrey Dik:

Укажите в свойствах компилятора что то типа:

Прочитал всю вашу ведку по SlickEdit - спасибо огромное за проделанный труд, многие мелочи взял для себя. К сожалению NetBeans не дает указать параметры при вызове компилятора. Странно почему не хочет, но ругается и на "%f" и на '-f'.
dmneedall2
6
dmneedall2  

Denis Savenko:
Прочитал всю вашу ведку по SlickEdit - спасибо огромное за проделанный труд, многие мелочи взял для себя. К сожалению NetBeans не дает указать параметры при вызове компилятора. Странно почему не хочет, но ругается и на "%f" и на '-f'. 

Приветствую Вас. Удалось ли решить сабж? Очень интересует тема. К сожалению гугление в течение почти cуток не дало результатов ... :-(, т.е. информации НОЛЬ, а хотелось бы работать в привычном окружении NetBean.
Alexey Volchanskiy
17142
Alexey Volchanskiy  
Denis Savenko:
Прочитал всю вашу ведку по SlickEdit - спасибо огромное за проделанный труд, многие мелочи взял для себя. К сожалению NetBeans не дает указать параметры при вызове компилятора. Странно почему не хочет, но ругается и на "%f" и на '-f'.
Может, пригодится мой опыт. Из NetBeans  не компилировал, использовал Visual Studio со сторонними компиляторами, в т.ч. МТ4. Тоже были проблемы с параметрами, решил созданием .cmd файла и уже его вызывал из студии. 
dmneedall2
6
dmneedall2  
Alexey Volchanskiy:
Может, пригодится мой опыт. Из NetBeans  не компилировал, использовал Visual Studio со сторонними компиляторами, в т.ч. МТ4. Тоже были проблемы с параметрами, решил созданием .cmd файла и уже его вызывал из студии. 

Спасибочки Вам, огромненькОЕ! :-)

Мысль простенькая, но в мою затуманенную голову почему то не пришла, увы.

Однако, проблему так и решил, с Вашей помощью!

 

Вот такой батничек вызываю в качестве C++ компайлера:

set WD=%CD%

cd ..

mql64.exe  /i:%CD% %WD%\%~4 

Назвал это чудо: cmql64.bat и положил его в поддиректорию "MQL4", каталога данных терминала MT4/

А строка - "Компилятор С++" в меню "Сервис\С++\Средства сборки\"  соответственно, выглядит так:

C:\[Ваш путь к каталогу данных терминала]\MQL4\cmql64.bat 

Ну и в закладке "Сервис\С++\Прочее\" важно не забыть добавить расширения: "mq4, mq5 и mqh", это чтобы NetBean думал, что он работает с C++, когда вы открываете файлы MQL.

------------------------------------------------------

Этот костылина работает. Что собственно и требовалось. Теперь можно писать и компилить все mql-ки непосредственно в NetBean. 

Alexey Volchanskiy
17142
Alexey Volchanskiy  
dmneedall2:

Ну и в закладке "Сервис\С++\Прочее\" важно не забыть добавить расширения: "mq4, mq5 и mqh", это чтобы NetBean думал, что он работает с C++, когда вы открываете файлы MQL.

Рад был немного помочь ) И в студии такая же фишка, добавляешь эти расширения к С++ - ным и все, студия парсит и подсвечивает их, как родные.
Igor Volodin
3999
Igor Volodin  

У меня в блоге есть кое-что по теме. Компиляция через сочетание клавиш -

https://www.mql5.com/ru/blogs/post/656491 

Обживаем компилятор MQL5
Обживаем компилятор MQL5
  • 2015.12.05
  • Igor Volodin
  • www.mql5.com
В этом посте речь пойдет о работе с компилятором MQL5 из командной строки. Отдельный компилятор может быть полезен, например, при использовании внешнего редактора. Преамбула После очередного...
MetaQuotes
Админ
25053
Renat Fatkhullin  

Вместо отдельного компилятора теперь нужно использовать штатный metaeditor.exe, который понимает запуск с командной строки и работает как консольный компилятор.

Документацию с примерами обновим

Alexey Volchanskiy
17142
Alexey Volchanskiy  
Renat Fatkhullin:

Вместо отдельного компилятора теперь нужно использовать штатный metaeditor.exe, который понимает запуск с командной строки и работает как консольный компилятор.

Документацию с примерами обновим

А с четверкой какая ситуация? Помню, давно компилятор был только в редакторе, потом вынесли отдельно.
Andrey Dik
12013
Andrey Dik  
Renat Fatkhullin:

Вместо отдельного компилятора теперь нужно использовать штатный metaeditor.exe, который понимает запуск с командной строки и работает как консольный компилятор.

Документацию с примерами обновим

"Нужно"? Отдельного компилятора теперь не будет?
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий