Публикации Lazarus

Установка библиотеки Indy10 в Lazarus

12.08.2010
Andreich

Ну вот, наконец-то у меня выдалась свободная минутка и я решил поделиться своим опытом установки Indy10 в Lazarus.

К тому моменту, когда меня впервые посетила мысль заняться сетевым программированием, никакого серьезного представления об этой области у меня не было. Быстренько пробежавшись по форумам, я натолкнулся на множество топиков посвященных разработке сетевых приложений с использованием библиотеки Indy. Первой проблемой, с которой я столкнулся при желании поработать с Indy оказалось отсутствие данной библиотеки в стандартной комплектации Lazarus. Не проблема, подумал я, сейчас быстренько поставим... Как я ошибался! Проблемы начались сразу при попытках скомпилировать и установить нужные компоненты. Было перерыто множество страниц Интернета и перечитана куча мануалов, прежде чем все собралось как надо. Но обо всем по порядку...

Оговорюсь сразу, что я использую не самую новую версию компилятора и Indy, просто по моему глубокому убеждению в них поменьше ошибок, а те что есть уже более-менее известны. Все дальнейшие шаги я буду комментировать для Lazarus 0.9.28, FPC 2.2.4 и Indy 10.2.0.1. Впрочем и для более новых версий эта инструкция отлично подходит.

Будем считать что Lazarus установлен. Первым делом нам понадобится сама библиотека, ее можно взять тут:

http://www.indyproject.org/Sockets/fpc/indy-10.2.0.1.tar.gz

Можно конечно взять и .zip архив, кому что больше нравится, но содержимое у них одинаковое. Распаковываем все это добро и видим внутри два каталога: fpc и lazarus. Первый (fpc) копируем в c:\lazarus\fpc\2.2.4\sources\packages и, для наглядности, меняем ему название на indy. Второй каталог (lazarus) копируем в c:\lazarus\componеnts и тоже переименовываем в indy. Кроме того, нужно скопировать из папки fpc (той, что была в архиве Indy) все файлы с расширением .pas и .inc в каталог с:\lazarus\components\indy\lib\i386-win32.

Теперь, в каталоге с:\lazarus\fpc\2.2.4\bin\i386-win32 находим файлик fpc.cfg. В него необходимо добавить две строчки с путями к созданным каталогам:

-FuC:\lazarus\fpc\2.2.4\source\packages\indy\
-FuC:\lazarus\components\indy\

Все, подготовительный этап окончен, ключ на старт, запускаем Lazarus. Заходим в пункт меню «Package» и выбираем пункт «Open package file (.lpk)», выбираем файл c:\lazarus\components\indy\indylaz.lpk,... жмем «Install», соглашаемся на пересбоку Lazarus и с замиранием сердца ждем окончания процесса (во избежание лишних проблем, о параметрах пересборки лучше позаботится заранее).

Когда Lazarus перезапустится, в палитре появятся новые вкладки со столь желаемыми компонентами Indy10. Подвох заключается в том, что если поставить на форму какой-нибудь компонент (к примеру IdTCPServer) то несмотря на успешную компиляцию проекта сразу при запуске приложения вылетает ошибка вида «Project raised exception class 'External:...». Из информации, найденной на просторах Интернета, удалось понять, что ошибка эта возникает по вине отладчика, как правило из за старой версии. Варианта два: 1) обновить отладчик на более новый; 2) отключить его вовсе. Мне не известно, но скорее всего, в более новых версиях Lazarus данная ошибка не возникает.

Еще одна мелкая неприятность с которой мне пришлось столкнуться — куча .o и .ppu файлов в рабочем каталоге проекта. Решается добавлением в файл fpc.cfg строчки вида:

-FUC:\lazarus\tmp

Всё, можно работать! Надеюсь, что данная инструкция хоть немного вам помогла.

Andreich

Актуальные версии
FPC3.2.2release
Lazarus3.2release
MSE5.10.0release
fpGUI1.4.1release
links