Собственно говоря, суть идеи звучит в самом названии темы. Как когда-то toropchin реализовал пакет с FTCG_pack.http://forum.hiasm.com/topic/55402 Такая-же идея засела в моих мыслях по поводу RTCG_pack. Предпосылки к такой идее те же. Компонуя и линкуя между собой элементы из палитры получается очень быстро собирать не только код целевого языка, но можно также быстро собрать схему самого компонента для конструирования кода целевого языка. Это особенно актуально для генерации кода языков в которых чрезвычайно большое количество похожих функций. Одним словом чтобы разработка пакета целевого языка не занимала много времени.
Но как оказалось на практике собрать такой пакет не так просто, а точнее положить ему начало. Открывая эту тему я искренне надеюсь на помощь разработчиков и тех у кого опыта программирования больше, чем у меня. Да, я видел несколько тем на форуме в названиях которых присутствуют символы "RTCG". Но к сожалению из их содержания я так и не понял - Как собрать пакет основанный на технологии RTCG. Перекопал всю справку и wiki, но подробного описания так и не нашёл. NetSpirit 12 July 2010 описал подробную инструкцию про создание пакета на основе FTCG. Для пакетов на основе RTCG, на сколько я понял этот сценарий не прокатит?
На некоторых ветках я задавал сопутствующие вопросы. И на сколько я понимаю разговор получится долгим и именно по этому решил открыть новую тему.
Этот топик читают: Гость
Ответов: 54
Рейтинг: 1
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
brown-aleks писал(а): Для пакетов на основе RTCG, на сколько я понял этот сценарий не прокатит? Прокатит - достаточно изменить *.hws файлы компонентов пакета, чтобы они генерировали сценарии для RTCG. Но лучше конечно, если ставить такую задачу, переписать пакет под RTCG, чтобы работать лишь с одним кодогенератором. |
|||
карма: 27 |
|
Ответов: 54
Рейтинг: 1
|
|||
После множества попыток создать пакет на основе RTCG, нервы сдают...
И в итоге решил удалить HiAsm со всеми потрахами, которыми он у меня оброс за несколько лет. Сделать чистую установку с сайта последней версии. Создать всё по инструкции. В надежде на чудо. Все эти танцы с бубном записал на видео. В видео вклеил свои коротенькие вопросы, которые возникали у меня по ходу. Но основной вопрос - "Чего я сделал не так??? Почему элементарно стартовый элемент не компилится??? И какой библиотеки ему ещё не хватает???" у меня до сих пор остаётся. Dilma на вас как на автора очень надеюсь, что Вы мне подскажите и научите. |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Из видео так и не понятно - а была ли make библиотека добавлена или нет. Проект без нее собрать не получится.
|
|||
карма: 27 |
|
Ответов: 54
Рейтинг: 1
|
|||
make библиотека добавлена не была. я даже не совсем понимаю про какую именно библиотеку вы говорите.
эту ??? ...\...\HiAsm\Elements\RTCG_pack\make\make_RTCG_pack.dll - я не знаю какое должно быть у неё содержимое... и от куда её взять. Если брать аналог из других пакетов, то в других пакетах они все разные. или эту??? ...\...\HiAsm\Elements\RTCG_pack\make.bat @echo off echo "make codegen dll for FTCG_pack packed" copy ..\FTCG\CodeGen.dpr CodeGen.dpr copy ..\FTCG\errors.pas errors.pas ..\..\compiler\delphi\dcc32.exe -U..\..\compiler\delphi CodeGen.dpr pause Редактировалось 1 раз(а), последний 2016-12-25 19:56:15 |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
brown-aleks писал(а): эту ???
...\...\HiAsm\Elements\RTCG_pack\make\make_RTCG_pack.dll - я не знаю какое должно быть у неё содержимое... и от куда её взять. Если брать аналог из других пакетов, то в других пакетах они все разные. Да эту. Для пакета генерации элементов подойдет пустой make, который делается в самом же HiAsm, например, этот http://svn.hiasm.com/packs/web/make/make_web.sha make_xxx.dll нужны для запуска собранного приложения или каких-то еще манипуляций с ним. В проектах, где запуска нет, он может быть полностью пустым. |
|||
карма: 27 |
|
Ответов: 54
Рейтинг: 1
|
|||
Делаем раз...
Делаем два... Ну и, в общем результат предсказуем... |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
brown-aleks писал(а): Делаем раз... Для справки: компилятор Copy, который стоит по умолчанию в этом пакете, не является компилятором и все, что он делает это копирует один файл в другой, о чем в окне отладки и было написано Copy from ... to ... Очевидно, что после такого dll работать не будет У вас же стоят все пакеты из стандартной установки - скопируйте вы уже готовый файл из пакета WEB Elements\web\make\make_web.dll в свой да и все(переименовать только не забыть). К чему такие сложности? PS: в первом посте дана ссылка на тему пользователя toropchin, в этой теме есть архив, а в архиве лежит make_FTCG_pack.dll - эта библиотека не годится разве? Судя по исходнику *.sha это тоже пустая сборка, как и в пакете WEB. Редактировалось 2 раз(а), последний 2016-12-26 00:16:39 |
|||
карма: 27 |
|
Ответов: 54
Рейтинг: 1
|
|||
Dilma писал(а): Copy from ... to ...Dilma писал(а): Очевидно, что после такого dll работать не будет Да, тут я промаргал момент... А ведь знал, что компилятор Copy только копирует и переименовывает... 1) попробовал make_FTCG_pack.dll из пакета toropchin - (скопировал в папку make и переименовал естественно в make_RTCG_pack.dll) 2) попробовал make_web.dll из стандартного пакета web - (скопировал в папку make и переименовал естественно в make_RTCG_pack.dll) результат: без ругательного сообщения (dll не предназначена для выполнения в Windows) но в окне отладки - (Ошибка компиляции, код [1]:библиотека не найдена) В установщике пакета у Торопчина FTCG_pack.his есть строка добавляющая компилятор, в стандартном ххх_pack.his такой строки нет. Может быть в этом дело??? FTCG_pack.his function run(){ sys.addcompiler("ftcgCopy","\"%fname%\" \"%oname%\"","\compiler\\copyer.exe","ftcg"); sys.addpack("ftcg_pack","FTCG_pack","Исходники компонентов на языке FTCG","ftcg"); sys.setcompiler("ftcg_pack","ftcgCopy"); sys.addproject("ftcg_pack","FTCG_EntryPoint","Компонент","Исходники компонентов на языке FTCG","hws","make_ftcg_pack.dll"); } Редактировалось 3 раз(а), последний 2016-12-26 22:10:09 |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Возможно у кодогенератора есть зависимости от dll, которых нет в системе.
|
|||
карма: 27 |
|
Ответов: 54
Рейтинг: 1
|
|||
Каким компилятором нужно собирать из make_RTCG_pack.sha в make_RTCG_pack.dll ?
Каким компилятором собирается CodeGen.dll, можно ли глянуть на исходник? Dilma писал(а): Возможно у кодогенератора есть зависимости от dll, которых нет в системе.Запускаю HiAsm в режиме WinXP-SP3 от имени администратора, ответ тот же: Ошибка компиляции, код [1]:библиотека не найдена если бы хоть знать, на каком именно моменте HiAsm выкидывает эту ошибку и какую именно библиотеку он пытается найти... Редактировалось 1 раз(а), последний 2016-12-27 11:38:32 |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Собирается все этим http://www.mingw.org/ и от него же зависимости, а именно:
MSVCRT.DLL LIBGCC_S_DW2-1.DLL LIBSTDC++-6.DLL Это то, без чего CodeGen.dll работать не будет. |
|||
карма: 27 |
|
Ответов: 54
Рейтинг: 1
|
|||
Dilma писал(а): Собирается все этим http://www.mingw.org/ и от него же зависимости, а именно: Мммм...дэээ... уж. Кажется это выше моего интеллекта. Dilma писал(а): MSVCRT.DLL LIBGCC_S_DW2-1.DLL LIBSTDC++-6.DLL Эти файлы в системных папках ОС присутствуют однозначно. - результат тот-же Может быть я в настройках HiAsm, в Компиляторах, в новь созданном пакете RTCG_pack чего-то не то сделал или не сделал. Какие ключевые моменты влияют на его работоспособность??? Создание нового пакета, похожа на какую то садо-маза-фака Почему бы господам разработчикам не уделить этой теме чуть большего внимания? Что бы было примерно так:
2) Выбрал подходящий компилятор. И готово. Мастер создаёт рабочую папку пакета со всеми необходимыми прибомбасами. Пустой, но рабочий пакет, которы остаётся только наполнить. Редактировалось 1 раз(а), последний 2016-12-27 15:22:05 |
|||
карма: 0 |
|
Ответов: 4629
Рейтинг: 749
|
|||
brown-aleks писал(а): Каким компилятором нужно собирать из make_RTCG_pack.sha в make_RTCG_pack.dll?Собирается имеющимся там же батником с помощью компилятора Delphi. make_rtcg.dpr - это исходник библиотеки, можно править в блокноте. |
|||
карма: 26 |
| ||
файлы: 1 | make dll template NS.zip [11.8KB] [668] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
brown-aleks писал(а): Почему бы господам разработчикам не уделить этой теме чуть большего внимания? Что бы было примерно так:1) Придумал наименование пакета, в соответствующее поле мастера по созданию пакетов забил его. 2) Выбрал подходящий компилятор. Потому, что в этом смысла никакого нет. Если вы хотите сделать свой пакет, то знания языков вам необходимы. Если вы не знакомы с языками, то пакет вы не создадите - это будет пустая трата времени. Кроме того PackCreator упрощает лишь начальную конфигурацию и на работу кодогенераторов повлиять никак не может - это задача разработчика пакета, т.к. вы должны уметь собирать кодогенератор под вашу ОС ибо правится он регулярно, а делать актуальные сборки под Windows сейчас никто не будет. brown-aleks писал(а): Эти файлы в системных папках ОС присутствуют однозначно. - результат тот-жеПопробуйте выполнить из командой строки в папке, где лежит CodeGen.dll rundll32 CodeGen.dll,buildPrepareProc Редактировалось 1 раз(а), последний 2016-12-27 16:19:52 |
|||
карма: 27 |
|