forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Прочие вопросы (http://forum.boolean.name/forumdisplay.php?f=50)
-   -   Компиляция из Sublime text (http://forum.boolean.name/showthread.php?t=18476)

Yadro 20.08.2013 13:44

Компиляция из Sublime text
 
Как компилировать код паскаля в Sublime Text3?

для привлечения внимания;)

ViNT 20.08.2013 21:48

Ответ: Компиляция из Sublime text
 
Если речь идет об MP 2.0.2, то не получится, там нет консольного компилятора. В версиях 3.x он вроде бы есть, точную командную строку не скажу, надо смотреть документацию.

Yadro 20.08.2013 22:12

Ответ: Компиляция из Sublime text
 
Эх, переходить на 3, что ли.
уж больно много камней на 3-ке, что спокойно компилиться на 2 версии, не факт, что заработает на 3-ей

moka 21.08.2013 02:49

Ответ: Компиляция из Sublime text
 
Если нету никакого скрипта или возможности как-то запустить exe'шник с параметрами, то не выйдет. Нужен какой-либо способ компиляции из командной строки, пусть даже запуск самого паскаля с дополнительными параметрами (но это будет медленно).

Yadro 21.08.2013 23:05

Ответ: Компиляция из Sublime text
 
Цитата:

Файл с названием «fpc.sublime-build», это и есть отчасти конфигурации для будущего вашего встроенного компилятора.
PHP код:

{
    
"cmd": ["fpc""${file}""${file_path}/${file_base_name}"],
    
"file_regex""^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    
"working_dir""${file_path}",
    
"selector""source.pascal",
    
"shell"true,
    
"path""C:\\Program Files (x86)\\free pascal\\bin\\i386-win32\\"


Первая — это та, где настраивается пункт «cmd», то есть, та команда, которая будет передана консоли.
«fpc» -название файла-компилятора, к которому будет обращаться редактор (не понятно где .exe, хотя больше похоже на название системы сборки)
«file»-передает полный путь до сохраняемого вами файла
«file_path» и «file_base_name» вместе передают путь + название будущего exe-файла. Тем самым, вместо стандартного «a.exe» вы получаете исполняемый файл, названный так же, как и файл исходного кода.

Вторая — эта та, где настраивается «working_dir».
«file_path», то есть, после запуска программы, текущей директорией будет считаться та, в которой лежит файл. Потому, если вдруг вы захотите открыть какой-то файл, находясь на вкладке с открытым файлом, лежащем в корне локального диска «C», то в меню выбора файла откроется именно этот локальный диск.

Третья (и самая главная) — это та, где настраивается «path».
Здесь вам нужно указать путь до директории с файлом-компилятором (который будет называться так, как указано в первой выделенной мной строчке). Обратите внимание, как именно оформляется путь при настройке этой переменной. Каталоги разделяются двумя обратными косыми чертами.
копипаст из "ПИШЕМ НА PASCAL В SUBLIME TEXT 2"

плюс командная строка от MP, спасибо GaisinPro)


А вот как теперь связать это с консолью...:dontknow:

ViNT 21.08.2013 23:22

Ответ: Компиляция из Sublime text
 
Цитата:

Сообщение от Yadro (Сообщение 265675)
А вот как теперь связать это с консолью...:dontknow:

Это для FreePascal, с данным случаем не имеет ничего общего.

В поставке MP3.5 есть утилита MP3CC.exe, это и есть консольный компилятор. При запуске из командной строки выдает синтаксис команды:
Код:

-------------------------------------------------------------------------
MIDletPascal 3.5 Compiler
Version: MPC.3.5.IDE
Authors: Niksa Orlic (1.x-2.0), Artem (3.0), Javier Santo Domingo (3.x)
-------------------------------------------------------------------------
usage: mp3cc
        -s"<source_filename>"
        -o"<output_path>"
        -l"<global_library_path>"
        -p"<project_library_path>"
        -m<math_type>
        -c<canvas_type>
        -r<next_record_ID>
        [-d] // detect units only
        [-n]<parent_notify_handle> // outputs using WMCOPYDATA

Остается немного порыться в документации и найти описание параметров -m -c -r.

Yadro 21.08.2013 23:25

Ответ: Компиляция из Sublime text
 
Цитата:

Сообщение от ViNT (Сообщение 265676)
Остается немного порыться в документации и найти описание параметров -m -c -r.

А где ее, собственно, найти?) Хотя с моими знаниями в это дело лучше не соваться:rolleyes:

ViNT 21.08.2013 23:31

Ответ: Компиляция из Sublime text
 
Цитата:

Сообщение от Yadro (Сообщение 265677)
А где ее, собственно, найти?) Хотя с моими знаниями в это дело лучше не соваться:rolleyes:

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

Yadro 21.08.2013 23:36

Ответ: Компиляция из Sublime text
 
А как хотя бы должна выглядеть строка с работой в cmd, с ней дело никогда не имел)

"path": "C:\\Program Files (x86)\\free pascal\\bin\\i386-win32\\mp3cc.exe -s"<блабла>" что то вроде этого?:-D

moka 22.08.2013 04:13

Ответ: Компиляция из Sublime text
 
Сперва попробуй это дело из CMD запустить, если удастся скомпилить так, тогда уже берись за build для sublime.
Не забудь что все разделённые пробелами аргументы в sublime-build системе должны быть разбиты в массив.
То есть если тебе нужно:
mp3cc.exe -s yourFile
То это будет:
"cmd": ["mp3cc.exe", "-s", "$file"]

В итоге может быть что-то типо:
PHP код:

{
  
"cmd": ["mp3cc""-s""$file"],
  
"file_regex""^[ ]*File \"(...*?)\", line ([0-9]*)",
  
"selector""source.pas",
  
"shell"true,
  
"encoding""utf-8"



Yadro 22.08.2013 11:40

Ответ: Компиляция из Sublime text
 
Ввел вот такую строчку в cmd
C:\Users\Администратор>"C:\Program Files\MIDletPascal 3.5 FINAL\mp3cc.exe" -s"C:\Program Files
lemaneger\filemanager.pas" -l"C:\Program Files\MIDletPascal 3.5 FINAL\Libs" -p"C:\Program File
rojects\filemanager\libs" -o"C:\Program Files\MIDletPascal 3.5 FINAL\projects\filemanager\bin"

В итоге создал только M.class:( :mad:

ViNT 22.08.2013 12:17

Ответ: Компиляция из Sublime text
 
Если в программе не было записей, других модулей и т.д., то все верно - исходник главного модуля и должен компилиться в M.class. Другой вопрос, что MP3CC это только компилятор, собирать jar он не умеет. Чтобы получить рабочее приложение, нужно добавить к M.class другие классы (как минимум FW.class, другие в зависимости от использования тех или иных функций), добавить MANIFEST.MF, библиотеки, запаковать все это в JAR и сгенерить для него JAD. Компилятор это делать не умеет (там правда есть еще пара exe-шников, может среди них есть компоновщик, но что-то сомневаюсь, а MP под рукой нет).

Yadro 22.08.2013 12:23

Ответ: Компиляция из Sublime text
 
Цитата:

Сообщение от ViNT (Сообщение 265693)
Если в программе не было записей, других модулей и т.д., то все верно - исходник главного модуля и должен компилиться в M.class. Другой вопрос, что MP3CC это только компилятор, собирать jar он не умеет. Чтобы получить рабочее приложение, нужно добавить к M.class другие классы (как минимум FW.class, другие в зависимости от использования тех или иных функций), добавить MANIFEST.MF, библиотеки, запаковать все это в JAR и сгенерить для него JAD. Компилятор это делать не умеет (там правда есть еще пара exe-шников, может среди них есть компоновщик, но что-то сомневаюсь, а MP под рукой нет).

А я то уж думал что он мне уже jar соберёт :) Ну раз все остальное ручками делать надо, то я и обычным копипастом из sublime в MP управлюсь :-D
Всем спасибо:)


Часовой пояс GMT +4, время: 14:13.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot