В том-то и дело, что для сборки "графический интерфейс" не нужен, но, видимо, нынче программисты знают только один способ скомпилировать программу: открыть графический интерфейс и нажать "Компилировать". И оправдывают это ложными утверждениями, что "А по-другому и нельзя, это как собирать самолёт на велосипедном заводе! Лазарус и LCL - это неразделимое целое!".
Но, действительно, во многих случаях хочется уметь скомпилировать проект без "графического интерфейса" (на самом деле, Lazarus - это не только интерфейс, поэтому неправильно так называть; это называется IDE - "интегрированная среда разработки"). И в случае с Лазарусом не очень очевидно, как это сделать, потому что вместе с ним предоставляется также библиотека LCL, в которой и лежат все те "графические" компоненты, которые Lazarus помогает использовать. И многим просто в голову не приходит, что на самом деле это разные вещи, просто распространяются обычно вместе.
На самом деле, они вполне работают по отдельности. Запускать Lazarus без LCL - можно, но обычно не имеет смысла; но вот использовать LCL без Lazarus - вполне имеет смысл, если нужно "просто скомпилировать проект". Как это сделать - я и описал в той статье, для тех, кто даже после этого не верит, что это возможно.
vitaly_l писал(а):Могу ли, я, разархивировать на винде, и затем - скопировать, на Линкус, директорию Лазаруса и потом удалённо запустить компиляцию из командной строки? Если ответ, "да", то вопрос лишь в подгружаемых в проект модулях. Все подгружаемые модули - однозначно должны быть на сервере (или прописаны в соответствующих путях).
Не совсем так.
Запустить виндовую версию Лазаруса или FPC на линуксе нельзя (по крайней мере, без Вайна). Надо установить на сервер линуксовую версию FPC - либо с сайта, либо из репозиториев. (Есть и более извращённые способы это сделать, но это уже оффтопик.)
После этого, можно продолжать разрабатывать свой проект на своём компьютере, а потом закачивать директорию с проектом на сервер и запускать на сервере компиляцию прямо из командной строки. Это и есть "обычный", первоначальный способ, как это делается.
Лекс Айрин писал(а):Пока я понял КАК надо программировать, я отстал от текущих тенденций (Лучше даже сказать практик).
У меня было наоборот. Я начинал изучать Pascal, а потом увидел такие замечательные инструменты как Delphi; я могу пользоваться ими, но благодаря этому я действительно понимаю, что они делают "на самом деле". Так же как я начинал изучать никсовые системы "снизу", с командной строки и "как всё работает на самом деле", и теперь я могу пользоваться удобными графическими инструментами (например, Synaptic), но при этом я знаю, что именно они делают и как при необходимости сделать то же самое без них (apt-get). И я продолжаю изучать всё именно с таким подходом - "меч тебе не положен, пока не научишься драться палкой". Поэтому, пользуясь Lazarus, я хочу точно знать, как именно он компилирует мой проект, а не просто "нажимаешь кнопку - и готово". Поэтому теперь я и понимаю, как это на самом деле происходит, и не поддаюсь заблуждениям вроде "так нельзя, вдруг там какие-нибудь ресурсы не упакуются".
"Связь друг с другом - в файле ресурсов"?.. Какая между ними ещё должна быть "связь", кроме описания класса?..
http://wiki.lazarus.freepascal.org/Lazarus_ResourcesВ ресурсном файле хранятся ресурсы, которые можно запихиваются туда архиватором, входящим в состав Лазаруса, в момент добавления их в проект. После этого ресурсный файл распространяется вместе с исходниками и с помощью линковщика FPC линкуется в бинарник. Но если вдруг надо, то в FPC тоже есть свой архиватор для этого.
Лекс Айрин писал(а):Предоставьте нам ссылку на лазарус БЕЗ LCL, но с другой библиотекой компонент.
Я ничего не говорил про "другую библиотеку компонент". Я сказал, что в репозитории как минимум Debian пакет lcl не зависит от пакета lazarus. "Зависит" - это технический термин, и он означает, что у пакета lcl в графе "Depends:" не прописан пакет lazarus. Он прописан в графе "Recommends:", и для этого есть другой термин - "Рекомендует". Тем не менее, я проверил и убедился, что и то, и другое работает по отдельности. (Хотя я не проверял, что именно в Lazarus работает, а что нет, поскольку действительно мало смысла использовать Lazarus без LCL.)
Лекс Айрин писал(а):Когда говорят о поставке в исходных кодах, то речь идет о сборке на стороне пользователя(у конечного пользователя) и никак иначе. Доступ пользователя к исходным текстам программы тут ни при чем.
Я говорил о "доступности" исходных кодов, то есть, предложение "распространять бинарник и зажать исходники" - не годится, ибо таким образом я как минимум по-хамски отношусь к своим пользователям, отнимая у них возможность скомпилировать программу так как они хотят (а как максимум - лишаю себя возможности лицензировать программу по GPL, потому что он такого отношения к пользователям не позволяет).
Лекс Айрин писал(а):Угу... есть несколько редакторов, причем, достаточно удобных, чтобы делать это. Например, Geany, Notepad++... в конце-концов, даже встроенная в FPC консольная версия IDE.
Лекс Айрин писал(а):Ну почему... просто это "Неуловимый Джо" (тот самый, который никому не нужен). Если использовать LCL, то нет смысла пропускать все плюшки среды, Zub, уже пару раз ткнул меня носом в этот факт. Один раз с отладчиком, а второй с PO файлами. А если использовать win/lin API напрямую, то не нужен LCL.
Так "нет смысла пропускать все плюшки среды" и если не пользуешься LCL, а просто пишешь консольную утилитку. И да, в первую очередь это удобство отладки и возможность собирать по нажатию одной кнопки.
Добавлено спустя 9 минут:Снег Север писал(а):У меня на виртуалбоксе дома стоит не только линукс-минт, но и макос и винХР. На виртуальном линуксе лазарь летает. А уж поставить лазарь на сервер - вообще не могу понять, в чем может быть проблема.
Проблема в том что он там не нужен! Он занимает место, тянет за собой зависимости... Для некоторых всё это может быть незначительно, но для тех, кто следит за "чистотой" системы и не будет делать ничего
лишнего без хорошей причины - особенно на сервере! - это имеет значение. Особенно если мы говорим о сервере, на котором обычно даже Иксы не установлены, а не о домашнем компьютере. Представьте, что будет, если "настоящий" сисадмин в серьёзной фирме захочет установить вашу CGI-программу в несколько килобайт размером, а она тянет за собой
полтора гигабайта зависимостей, включая Иксы и всевозможные графические библиотеки? Он может и на своём компьютере её скомпилировать, но тогда каждую новую версию ему придётся (возможно, кросс-)компилировать самому; лучше просто установить её из вашего репозитория, где она обновляется автоматически, и тогда она будет обновляться вместе со всей остальной системой. Но чтобы это было возможно - сначала надо научиться следовать "правилам хорошего тона" свободного сообщества, и "никаких лишних зависимостей" - это настолько естественно, что вряд ли даже где-нибудь упомянуто.
Добавлено спустя 6 минут 45 секунд:А ещё, кстати, на какой-нибудь американской ферме, где до сих пор диалап, или где-нибудь в Сьерра-Лионе, где у кого-то может быть только Raspberry Pi с двухгигабайтной флешкой и вообще не знаю как с интернетом, а возможно, и в какой-нибудь русской глубинке - вопрос скачивания нескольких сотен метров лишних зависимостей становится достаточно значительным даже для обычных пользователей.