Использование LCL в fpc

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: Использование LCL в fpc

Сообщение Лекс Айрин » 14.06.2017 16:42:20

Сквозняк, бывает... у меня герои на нем шли стабильнее чем на винде.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Использование LCL в fpc

Сообщение pupsik » 14.06.2017 19:52:21

По поводу вина. Лазарь запускался и компилил в нём давно. Только там такие артефакты бывают... То картинки пропадут, то ещё.. по мелочи. Если память не изменяет эти артефакты повторяются и на винде (давненько сиё тестил и вино + лазарь в топку послал). Поэтому для меня - виртуалбокс и там компилить. Или рабочая машина с необходимой системой.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Использование LCL в fpc

Сообщение vitaly_l » 14.06.2017 20:13:19

pupsik писал(а):виртуалбокс и там компилить

Вот я пошёл этим путём, потому что в архиве не нашёл make, без make на сервер fpc не поставишь. И решил сделать полную установку типа искаропки и взять там make.

Скачал 4 архива для debian: binutils, scr-fpc, fpc и lazarus. Постольку поскольку я линукса не знаю, то установил пакеты командой dpkg -i <имя файла>. Всё установилось и лазарус появился в рубрике "все программы". Я его запустил. Он запустился, пишет что всё нашёл, кроме make... Этого чёртового make нет и в самом архиве. Мне это никогда не понять, т.к. для винды - make, всегда в инсталяторе есть, а тут нет. Брал оф. версию 1.6.4 с оф. сайта. Поясните мне, пожалуйста, уважаемые линуксоиды: где вы берёте make и зачем его нет в установочном архиве?
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Использование LCL в fpc

Сообщение pupsik » 14.06.2017 20:38:50

make, cmake, gcc и т.д. - это отдельные программы. Плюс, лазарю ещё необходимы девки. Как и фпс.

Добавлено спустя 1 минуту 40 секунд:
как бы
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Использование LCL в fpc

Сообщение vitaly_l » 14.06.2017 21:00:14

pupsik писал(а):make, cmake, gcc и т.д. - это отдельные программы.

Да что вы говорите? :shock: Не может быть!!! :shock: И что, правда отдельные программы? :shock: Сами догадались или подсказал кто? :evil:
Добавлено спустя 7 минут 53 секунды:
pupsik писал(а):как бы

:?: Вот это make это оно? => https://packages.debian.org/jessie/i386 ... e/download
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Использование LCL в fpc

Сообщение pupsik » 14.06.2017 21:50:47

Сами догадались или подсказал кто?
борода подсказала :)

Вот это make это оно?
ух ты: деби поставили. Хм..: а что же бубна дружелюбного не всу...

Да это одна из утилит для сборок проектов. Не только паскалевских.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Использование LCL в fpc

Сообщение vitaly_l » 14.06.2017 22:06:00

pupsik писал(а):Да это одна из утилит для сборок проектов.

Ок. спасибо. дальше я наверно разберусь.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Использование LCL в fpc

Сообщение Cheb » 15.06.2017 01:13:54

Флуд - это реальное психическое заболевание и у него есть медицинское название.

+100500 :D

не позволят даже достучаться до сервера,

АФФТАРЖЖОТ :D *** YEAH! :D

, в итоге вы делаете хуже себе, т.к. болезнь прогрессирует.

:( Теперь я грустный буду.
Без шуток. :(

З.Ы. А вдруг у меня тоже интернет зависимость? =:(
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Использование LCL в fpc

Сообщение vitaly_l » 15.06.2017 07:03:42

Cheb писал(а): Теперь я грустный буду.
Без шуток.
З.Ы. А вдруг у меня тоже интернет зависимость? =:(

:roll: --- Доктор... я... что-же теперь.... умру?....
:twisted: --- Обязательно!!!! :mrgreen: :mrgreen: :mrgreen:
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Использование LCL в fpc

Сообщение Лекс Айрин » 15.06.2017 09:45:50

vitaly_l писал(а):Постольку поскольку я линукса не знаю, то установил пакеты командой dpkg -i <имя файла>.


Лучше использовать утилиты с автоматическим разрешением зависимостей типа apt-get, правда, при этом надо будет добавить репозитарий пакета.

Cheb писал(а):З.Ы. А вдруг у меня тоже интернет зависимость? =:(

По любому мы тут все зависимые... Лично я проверяю очень просто... беру стопку книжек, и вообще не подхожу к компу неделю-другую. А то и вообще уезжаю за город.
Пока ломок не было.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Использование LCL в fpc

Сообщение daesher » 16.06.2017 11:50:39

Сам Lazarus, в общем-то, и не нужен - нужен его "кусок" - lazbuild (это - "идеологически правильный способ"). Он вполне себе консольный, и в некоторых дистрибутивах может идти отдельно от собственно IDE. Но есть (раньше был точно) и "идеологически неправильный способ", который раньше срабатывал даже тогда, когда в lazarus что-то поломалось (но в рассылке lazarus меня сильно за него ругали). Способ работает и сейчас, с небольшими модификациями:
1. FPC должен быть установлен. Исходники не обязательно.
2. Берём исходники lazarus и копируем оттуда в отдельный каталог все файлы (по крайней мере, .pp, .pas, .inc, .res) из каталогов:
2.1. lcl (без подкаталогов)
2.2. lcl/widgetset
2.3. lcl/include
2.4. lcl/nonwin32 (если не win32)
2.5. components/lazutils
2.6. packager/registration
2.7. lcl/interfaces/{выбираем нужный}. Если там есть подкаталоги - и из них копируем тоже.

Далее ищем нужный нам .lpr, запускаем fpc -S2 {наш lpr} -Fu{каталог, куда скопировали всё}.
Проект скомпилирован (если ему требуется что-то особенное - его тоже можно бросить в тот же каталог). При дальнейшем желании поиздеваться можно в объединённом каталоге откомпилировать все файлы pas и pp и стереть их.
Только что проверено на актуальной версии svn.
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14

Re: Использование LCL в fpc

Сообщение Лекс Айрин » 16.06.2017 12:24:15

daesher писал(а): Но есть (раньше был точно) и "идеологически неправильный способ", который раньше срабатывал даже тогда, когда в lazarus что-то поломалось (но в рассылке lazarus меня сильно за него ругали).


И правильно ругали. На предыдущей странице был способ намного проще. Достаточно указать пути до нужных библиотек. Это намного проще и экономичнее. Собственно, лазбилд так и действует.

daesher писал(а):- нужен его "кусок" - lazbuild (это - "идеологически правильный способ").


Идеологически правильный способ это использование среды... все остальное суть извращения, которые нужны в достаточно редких случаях. Например, для портирования LCL в другое IDE или сборки лазаруса из консоли.

daesher писал(а): Берём исходники lazarus и копируем оттуда в отдельный каталог все файлы (по крайней мере, .pp, .pas, .inc, .res)


Есть одна особенность... имена файлов не обязательно должны быть индивидуальны. И в случае их совпадения один из "клонов" будет потерян (затерт). То, что этого не произошло ранее есть не более чем привычка программистов не допускать совпадений имен (да и то, даже в лазарусе есть, например, тип Point, который является объявленным дважды -- один раз в компиляторе, а другой в среде. Есть переопределение типа Integer, в зависимости от режима...).
Конечно, если необходимо иметь только один режим сборки под одну платформу, то можно вообще выкинуть все, что не относится к ней... заодно это надо делать и для компилятора. Но опять же, это должно иметь за собой определенную цель, а не просто желание поэкспериментировать.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Использование LCL в fpc

Сообщение Сквозняк » 16.06.2017 15:51:50

>Достаточно указать пути до нужных библиотек.

Может в последней версии и достаточно, но в старых было недостаточно. Для более надёжной компиляции необходимо явно задать в командной строке тип графического тулкита.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Использование LCL в fpc

Сообщение Лекс Айрин » 16.06.2017 16:02:11

Сквозняк, пусть так, но это менее драматично, чем копирование половины кода LCL в проект.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Использование LCL в fpc

Сообщение daesher » 16.06.2017 17:32:15

Лекс Айрин писал(а):Достаточно указать пути до нужных библиотек. Это намного проще и экономичнее

Но требуется тащить всюду весь Lazarus.
Лекс Айрин писал(а):Идеологически правильный способ это использование среды... все остальное суть извращения, которые нужны в достаточно редких случаях.

Lazbuild - штатный "сборщик" проектов. Тогда, когда визуальная среда разработки не нужна, в т.ч. и когда на компьютере для сборки нет графической среды.
Лекс Айрин писал(а):Есть одна особенность... имена файлов не обязательно должны быть индивидуальны. И в случае их совпадения один из "клонов" будет потерян (затерт). То, что этого не произошло ранее есть не более чем привычка программистов не допускать совпадений имен (да и то, даже в лазарусе есть, например, тип Point, который является объявленным дважды -- один раз в компиляторе, а другой в среде. Есть переопределение типа Integer, в зависимости от режима...).

Я могу предположить, что путём жесточайших издевательств над кодом можно объединить два одноимённых модуля, но штатными средствами это не получится: компилятор будет искать модуль с определённым именем в пути поиска, и как только найдёт - будет использовать именно его.
Дублирование имён файлов может быть только в случаях:
1. include. Тоже довольно криво и опасно, но можно попробовать, компилируя модули отдельно от проекта. Масса проблем может вытекать.
2. Однотипные файлы для разных ситуаций (например, для разных ситуаций). В штатном случае компилятор при сборке одного проект не должен увидеть два одноимённых модуля.
3. Омонимы из совершенно разных проектов (например, был файл forms.pp для xforms в самом freepascal, он мог конфликтовать с forms из Lazarus - и периодически возникали сбои).
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14

Пред.След.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29

Рейтинг@Mail.ru