Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если компилятор вызывается в *.bat можно в конце батника дописать команду "type" и всё становится как раньше, у меня напр. так: ( флажок "/s" кстати как и раньше позволяет выполнять только проверку синтаксиса)
type
не знаю к сожалению,
вставил в npp, ничего не выдает.
Ребят, ну так что на счет вывода диагностики в stdout? Никак нельзя сделать скажем /log:stdout?
Я вообще под юниксом сижу и у меня emacs, несколько лет назад все было просто, а теперь он молча компилирует или не компилирует и ничего не понятно.
Сам MetaEditor жудко не удобен для работы с кодом. Помогите :)
И, кстати, где можно узнать какие ключики metaeditor.exe принимает?
Ребят, ну так что на счет вывода диагностики в stdout? Никак нельзя сделать скажем /log:stdout?
Я вообще под юниксом сижу и у меня emacs, несколько лет назад все было просто, а теперь он молча компилирует или не компилирует и ничего не понятно.
Сам MetaEditor жудко не удобен для работы с кодом. Помогите :)
И, кстати, где можно узнать какие ключики metaeditor.exe принимает?
Ну, в общем сделал так, если кому надо (это для Emacs):
(defvar mql-compiler-default-version 4)
(defvar mql-compiler-path
(concat
(cond ((eq 'gnu/linux system-type) (concat
"wine \"/home/" (user-login-name)
"/.wine/dosdevices/c:"))
((eq 'windows-nt system-type) "\"C:"))
;; "/Program Files (x86)/MetaTrader 4/MQL4/mql.exe\""))
"/Program Files (x86)/MetaTrader 4/metaeditor.exe\""))
(cl-defun mql-compile (version &optional check-only)
(compile (concat
mql-compiler-path
(case version
(4 " /mql4 ")
(5 " /mql5 "))
(if check-only " /s " "")
" /i:\""
(file-name-directory (buffer-file-name)) "\" "
" /compile:\""
(file-name-nondirectory (buffer-file-name)) "\" "
" /log:\"."
(file-name-nondirectory (buffer-file-name)) ".compile\" "
" 2>/dev/null"
" ; iconv -f UTF-16 -t UTF-8 \"."
(file-name-nondirectory (buffer-file-name)) ".compile\" "
" ; rm \"."
(file-name-nondirectory (buffer-file-name)) ".compile\" "
)))
(defun mql-compile-dispatcher ()
"Compile mql file."
(interactive)
(let* ((extension (file-name-extension (buffer-file-name)))
(version (cond ((or (equal "mq4 "extension)
(equal "ex4 "extension)) 4)
((or (equal "mq5 "extension)
(equal "ex5 "extension)) 5)
(t mql-compiler-default-version))))
(mql-compile version
(if (equal "mqh" extension) :check-only))))
Ну, в общем сделал так, если кому надо (это для Emacs):
(defvar mql-compiler-default-version 4)
(defvar mql-compiler-path
(concat
(cond ((eq 'gnu/linux system-type) (concat
"wine \"/home/" (user-login-name)
"/.wine/dosdevices/c:"))
((eq 'windows-nt system-type) "\"C:"))
;; "/Program Files (x86)/MetaTrader 4/MQL4/mql.exe\""))
"/Program Files (x86)/MetaTrader 4/metaeditor.exe\""))
(cl-defun mql-compile (version &optional check-only)
(compile (concat
mql-compiler-path
(case version
(4 " /mql4 ")
(5 " /mql5 "))
(if check-only " /s " "")
" /i:\""
(file-name-directory (buffer-file-name)) "\" "
" /compile:\""
(file-name-nondirectory (buffer-file-name)) "\" "
" /log:\"."
(file-name-nondirectory (buffer-file-name)) ".compile\" "
" 2>/dev/null"
" ; iconv -f UTF-16 -t UTF-8 \"."
(file-name-nondirectory (buffer-file-name)) ".compile\" "
" ; rm \"."
(file-name-nondirectory (buffer-file-name)) ".compile\" "
)))
(defun mql-compile-dispatcher ()
"Compile mql file."
(interactive)
(let* ((extension (file-name-extension (buffer-file-name)))
(version (cond ((or (equal "mq4 "extension)
(equal "ex4 "extension)) 4)
((or (equal "mq5 "extension)
(equal "ex5 "extension)) 5)
(t mql-compiler-default-version))))
(mql-compile version
(if (equal "mqh" extension) :check-only))))
В отоге получаем вывод, а он уже парсится нормально, да и одного взгляда достаточно:
-*- mode: compilation; default-directory: "~/src/FX/fxmax4/Exprerts/" -*-
Compilation started at Thu Mar 3 08:06:49
wine "/home/diabolo/.wine/dosdevices/c:/Program Files (x86)/MetaTrader 4/metaeditor.exe" /mql4 /i:"/home/diabolo/src/FX/fxmax4/Exprerts/" /compile:"cpi.mq4" /log:".cpi.mq4.compile" 2>/dev/null ; iconv\
-f UTF-16 -t UTF-8 ".cpi.mq4.compile" ; rm ".cpi.mq4.compile"
cpi.mq4 : information: Compiling 'cpi.mq4'
C:\Program Files (x86)\MetaTrader 4\MQL4\include\stderror.mqh : information: Including 'stderror.mqh'
C:\Program Files (x86)\MetaTrader 4\MQL4\include\stdlib.mqh : information: Including 'stdlib.mqh'
Result: 0 error(s), 0 warning(s), compile time: 122 msec
Compilation finished at Thu Mar 3 08:06:50
Сделаем вывод в консоль сообщений
к сожалению ничеги не изменилось
сделайте пожалуйста как нибудь
не получается получить файл ".ex5", подскажите, пожалуйста что может быть не так.
Пытаюсь и вручную:
Но файл не появляется нигде - ни на диске Д, ни в каталоге данных (пробовала и файлы с каталога данных брать изначально). Лог так же не могу найти
не получается получить файл ".ex5", подскажите, пожалуйста что может быть не так.
Пытаюсь и вручную:
Но файл не появляется нигде - ни на диске Д, ни в каталоге данных (пробовала и файлы с каталога данных брать изначально). Лог так же не могу найти
Для компиляции файла вне рабочей папки терминала, вероятно, нужно указывать к ней путь с помощью ключа /inc:. Некоторые подробности в английском блоге.
Для компиляции файла вне рабочей папки терминала, вероятно, нужно указывать к ней путь с помощью ключа /inc:. Некоторые подробности в английском блоге.
Рабочую папку первоначально пробовала, потом начала менять каталоги и чтоб сюда выложить уже обратно не меняла - эффект тот же...
Спасибо, сегодня почитаю статью, вдруг что-то замечу.
Рабочую папку первоначально пробовала, потом начала менять каталоги и чтоб сюда выложить уже обратно не меняла - эффект тот же...
Спасибо, сегодня почитаю статью, вдруг что-то замечу.
Я писал про ключ /inc - не увидел его в новой ("старой") модификации. Указать путь к компилируемому файлу в /compile недостаточно, если в нем есть зависимости.
Я писал про ключ /inc - не увидел его в новой ("старой") модификации. Указать путь к компилируемому файлу в /compile недостаточно, если в нем есть зависимости.
Да, действительно в предыдущем примере не увидела зависимость от Trade.mqh. Попробовала ее прописать - ничего не изменилось.
Потом попробовала с файлом где точно нет зависимости - так же не получилось...