Как установить компоненты Indy10 в Lazarus?

Вопросы программирования и использования среды Lazarus.

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

Как установить компоненты Indy10 в Lazarus?

Сообщение Andreich » 05.01.2009 02:03:59

Скачал версию Indy для Lazarus (indy-10.2.0.1.tar.gz), но никак не могу разобраться с ее установкой! :(
После распаковки в каталоге появляются две папки: fpc и lazarus,.. во второй есть файл indylaz.lpk, но попытки установить его через Package -> Open package file (.lpk) ... успехом не увенчались. Ругается примерно так:

IdDsnCoreResourceStrings (1,1) Fatal : Can't find unit IdGlobal used by IdAboutVCL ...

Что я делаю не так? Если кто-нибудь ставил эти компоненты, поделитесь опытом пожалуйста!
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Как установить компоненты Indy10 в Lazarus?

Сообщение Logo » 05.01.2009 03:26:52

Нужно сначала установить fcl для freepascal.
В каталоге Indy, заходим в каталог fpc и делаем это:
make PP=/usr/local/lib/fpc/2.2.3/ppcx64 COMPILER_OPTIONS="-dUseCThreads "
Путь к ppc386 или ppcx64 укажите свой, или, если он у вас прописан в PATH, то не указывайте его совсем.
Далее по инструкции следует выполнить:
make install PP=/usr/local/lib/fpc/2.2.3/ppcx64
но у меня оно никогда корректно не работало, если и у Вас не установится, то вручную скопируйте результат компиляции из каталога indy/fpc/units/версия вашей системы/* в каталог модулей fpc, или просто укажите путь к этим файлам в Lazarus Compiler options->Other Units Files

После этого уже делайте установку пакета, так, как Вы и делали.

Еще одно. Некоторые компоненты Indy требуют, чтобы проект был откомпилирован в режиме многопоточности, поэтому пропишите опцию -dUseCThreads в Lazarus меню Project->Compiler Options вкладка Other поле Custom Options.

Не знаю, как indy-10.2.0.1, а indy-10.2.0.3 под Линуксом глючит в режиме дизайна по полному, поэтому почти все сервера приходится писать руками, тогда работают.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Как установить компоненты Indy10 в Lazarus?

Сообщение Vadim » 05.01.2009 10:13:55

Я каталог "fpc" перенёс в каталог исходников freepascal, путь к нему в Lazarus должен быть прописан. Тогда пакет спокойно собирается и устанавливается.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Как установить компоненты Indy10 в Lazarus?

Сообщение Andreich » 05.01.2009 13:20:08

Спасибо за советы, как я понял системе не удавалось найти модули расположенные в indy-10.2.0.1/fpc... Я создал отдельную папку /usr/lib/fpc/2.2.2/units/i386-linux/indy и скопировал в нее все файлы из fpc и lazarus, после чего разрешил к этой папке полный доступ и выполнил установку .lpk файла. (установка и пересборка IDE прошла без каких либо замечаний, причем как с опцией -dUseCThreads так и без нее).

После перезапуска IDE появились закладки с компонентами Indy10 которые благополучно ставятся на форму, но работать не хотят! Так, к примеру, поставил на форму IdHTTPProxyServer,.. пока у него свойство Active=[false] программа запускается, но стоит поменять его на [true], как вылетает ошибка: Project raised exeption class 'RunError(232)'.

Если же в Project->Compiler Options вкладка Other поле Custom Options указать опцию -dUseCThreads, то выдается ошибка другого вида: Project raised exeption class 'EIdSocketError' with message: Socket error #98 _ Adress already in use. Что это? Те самые глюки в режиме дизайна или же что-то другое!? Ведь компиляция проходит без каких-либо замечаний!
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Как установить компоненты Indy10 в Lazarus?

Сообщение Logo » 05.01.2009 13:48:06

Andreich писал(а): (установка и пересборка IDE прошла без каких либо замечаний, причем как с опцией -dUseCThreads так и без нее).

На компиляцию оно никак не влияет. Когда создается проект, то автоматически в файле проекта ставится код:
Код: Выделить всё
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}


-dUseCThreads просто подключает модуль cthreads в проект.
Суть в том, что модуль cthreads должен быть обязательно первым в проекте, кроме того, могут быть компоненты, которые могут компилироваться как в однопоточный режим, так и в многопоточный. Поэтому для синхронизации этого всего и применяют -dUseCThreads. Во время компиляции все проходит нормально, но во время выполнения начнут вылазить проблемы, так, как в Indy некоторые модули написаны жестко с модулем cthreads(без условной компиляции) и если в проекте, не включить первым cthreads, то он всеравно подключится, но уже не первым и вызовет проблемы с памятью.

К сожалению глюки в компонентах есть. Но если создавать и инициализировать их во время выполненя, то вроде все работает.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Как установить компоненты Indy10 в Lazarus?

Сообщение Andreich » 05.01.2009 19:47:38

Так, ну вроде разобрался с Socket error #98 _ Adress already in use проблема была в том, что в Ubuntu использовался IPv6, пришлось отрубить его вручную и все заработало!

Теперь другая проблема: на форме есть TIdHTTPProxyServer, который раздает интернет,.. странички грузятся, все вроде ok, но время от времени программа вырубается без каких либо на то оснований! Причем если запускалась из IDE - выдает сообщение: Connection closed gracefully, что в переводе на русский Соединение закрыто корректно. Я в шоке! Причем программа вырубается даже если создавать компоненты в рантайм, даже если писать на чистом FPC, а не в Lazarus!
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Как установить компоненты Indy10 в Lazarus?

Сообщение haword » 06.01.2009 11:40:21

это стандартная ситуация с инди, поищи в инете я уже не помню, но эта ошибка обрабатывается.
haword
постоялец
 
Сообщения: 301
Зарегистрирован: 02.03.2006 11:34:40


Re: Как установить компоненты Indy10 в Lazarus?

Сообщение Andreich » 13.01.2009 16:01:53

Еще один вопрос: почему после установки на форму какого-либо компонента из состава Indy и компиляции, в рабочем каталоге проекта появляется куча .ppu файлов для компонентов из состава библиотеки?
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Как установить компоненты Indy10 в Lazarus?

Сообщение Vadim » 13.01.2009 16:21:13

Наверное в опциях проекта так задан путь, куда складывать откомпилированные юниты. Посмотрите "Проект - Параметры компилятора - Пути - Каталог вывода модулей (-FU)".
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Как установить компоненты Indy10 в Lazarus?

Сообщение Andreich » 13.01.2009 17:35:46

Vadim писал(а):Посмотрите "Проект - Параметры компилятора - Пути - Каталог вывода модулей (-FU)".

Нет, поле Unit output directory пустое. Какие будут еще суждения?
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Как установить компоненты Indy10 в Lazarus?

Сообщение Vadim » 13.01.2009 19:02:55

Andreich
А в fpc.cfg если посмотреть?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Как установить компоненты Indy10 в Lazarus?

Сообщение Andreich » 14.01.2009 11:10:21

Vadim писал(а):Andreich
А в fpc.cfg если посмотреть?

Вот все, что было в fpc.cfg:
Код: Выделить всё
# searchpath for units and other system dependent things
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
#-Fu~/fpc/packages/base/*/units/;~/fpc/fcl/units/;~/fpc/rtl/units/

Добавил: -FU/home/username/.cmp
Теперь все складывается в отдельный каталог. :) Спасибо за подсказку!

Добавлено спустя 5 минут 6 секунд:
Кстати, возвращаясь к ошибке 'Connection closed gracefully'... После перехода на Ubuntu 8.10 (раньше стояла .04) и установки свежей версии FPC 2.3.1 + Lazarus 0.9.27 все стало работать стабильно.
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Как установить компоненты Indy10 в Lazarus?

Сообщение Attid » 14.01.2009 18:18:45

ViTality писал(а):Delphi-подобная среда разработки в Linux на базе Lazarus и Indy 10

интересная статейка и особенно коменты =) надо в потрепаться перенести чбы больше народу глянуло, а то в топик с Indy не все могут зайти
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: Как установить компоненты Indy10 в Lazarus?

Сообщение Lisolog » 18.01.2009 02:56:28

От чего может возникать мессаг:
Код: Выделить всё
unit1.pas(9,31) Error: не найден исходный код: модуль C:\lazarus\indy\lazarus\lib\i386-win32\IdWhois.ppu

Бьюсь головой в пол..
Путь в -Fu прописан, файл по указанному пути существует
Lazarus 0.9.27(i386) indy 10.2.0.1
..и смогет оно под WinCE компильнуца?
Lisolog
новенький
 
Сообщения: 39
Зарегистрирован: 13.12.2007 14:24:08
Откуда: Russia, SPb

След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru