Установка библиотеки 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
Всё, можно работать! Надеюсь, что данная инструкция хоть немного вам помогла.