Меню Рубрики

Установка indy для lazarus

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

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

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

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

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

Можно конечно взять и .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. В него необходимо добавить две строчки с путями к созданным каталогам:

Все, подготовительный этап окончен, ключ на старт, запускаем 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 строчки вида:

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

источник

Установка indy для lazarus

Скачал версию 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 .

Что я делаю не так? Если кто-нибудь ставил эти компоненты, поделитесь опытом пожалуйста!

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

Нужно сначала установить 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 под Линуксом глючит в режиме дизайна по полному, поэтому почти все сервера приходится писать руками, тогда работают.

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

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

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

Читайте также:  Установка виндоса с диска

После перезапуска >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. Что это? Те самые глюки в режиме дизайна или же что-то другое!? Ведь компиляция проходит без каких-либо замечаний!

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

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

К сожалению глюки в компонентах есть. Но если создавать и инициализировать их во время выполненя, то вроде все работает.

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

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

Теперь другая проблема: на форме есть T >Connection closed gracefully , что в переводе на русский Соединение закрыто корректно . Я в шоке! Причем программа вырубается даже если создавать компоненты в рантайм, даже если писать на чистом FPC, а не в Lazarus!

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

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

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

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

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

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

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

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

Добавлено спустя 5 минут 6 секунд:
Кстати, возвращаясь к ошибке ‘Connection closed gracefully’ . После перехода на Ubuntu 8.10 (раньше стояла .04) и установки свежей версии FPC 2.3.1 + Lazarus 0.9.27 все стало работать стабильно.

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

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

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

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

источник

Ошибка установки Indy в Lazarus

Текст ошибки: «lazarus.pp(1,1) Fatal: Невозможно найти indylaz, используемый в Lazarus, несовместимый PPU=C:\lazarus\components\Indy10_5298\Lib\lib\i386-win32\indylaz.ppu, пакет indylaz».

Lazarus 1.4.2-Win32, Indy 10.5298, Windows 8.1 x64
Как можно исправить эту ситуацию?
п.п.с Проблема не возникает в версии Lazarus 1.2.6; В версии 1.4.0 уже имеет место быть.

Ошибка при компиляции Lazarus + Indy
Error: Identifier not found «TIdTextEncoding» при этом модуль IdGlobal подключен. В принципе.

Indy и lazarus
Быстро прогуглив установку вышесказанного под новую версию lazarus и не найдя ничего рабочего,я.

Indy + Lazarus
ОС: xUbuntu 13.04 Установил indy по этой статье idhttp работает нормально, но если вывести.

Lazarus + Indy в Linux
Есть идея переписать Проект My Mail Agent под Linux, возникает вопрос насколько сложно будет.

Первое, что я попробовал бы сделать — это в диалоге «Сервис — Параметры сборки Лазарус» в поле «Параметры», добавил бы
-FuC:\lazarus\components\Indy10_5298\Lib\lib\i386-win32\

А вообще — тема очень больная. И на форуме lazarus.freepascal.org обсуждалась месяца 2 назад, да и так, кто как может — так и решает проблему. Вот еще один вариант, например. Но, как по мне, он нерабочий, поскольку настройки для компилятора при пересборке Лазаруса не заданы. Может, сам пакет и откомпилируется, а вот где найти полученные файлы ,компилятор опять же не узнает. Что характерно — fpc.cfg, как выяснилось, тут не помощник. Плевать на него (и на его содержимое) Лазарус хотел, не ищет там где указано и все тут.

Решение

Issue on Windows 64bits
On Windows 64bits, the compilation of the archive mentioned above will not work. This can be fixed by editing IdAntiFreeze.pas, replacing :

type
T > public
procedure Process; override;
end;

Идут в комплекте, и без данной корректировки на Lazarus для x64 не хочет устанавливаться.

Не сочтите за спам, но при переустановке Lazarus часто возвращаюсь именно к этой теме, поэтому для себя добавлю.

В случае 64-разрядной версии

Issue on Windows 64bits
On Windows 64bits, the compilation of the archive mentioned above will not work. This can be fixed by editing IdAntiFreeze.pas, replacing :

type
T > public
procedure Process; override;
end;
by

К корреспонденции данное сообщение не относится. И как уже я писал выше про IdAntiFreeze, именно в нем необходимо менять строки при использовании НЕ 64-разрядной винды, а 64-разрядного Lazarus!

Читайте также:  Установка беркут в паджеро спорт

У меня такая проблема возникла, через яндекс набрал ошибку как раз про строчку procedure Process; override; и попал на эту страницу.

До этого был Лазарус 1.8.0, решил обновить до 2.0.2 и столкнулся с проблемой установки инди.

Отношение имеет прямое, \indy-10.2.0.3.zip\indy-10.2.0.3\fpc\IdAntiFreezeBase.pas и СООТВЕТСТВЕННО при установке пересобирается лазарус, ну и сам компонент вместе с данным файлом. В нем обнаруживается ошибка, которая ПОЧЕМУ-ТО описана на ОФИЦИАЛЬНОМ ФОРУМЕ СРЕДЫ РАЗРАБОТКИ, и оп, как проблема при установке Indy (пруф).

Добавлено через 2 минуты
И если данной проблемы не существует, почему же её решение описано на wiki.freepascal.org . Внизу заголовок «Issue on Windows 64bits»

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Утечки памяти (Lazarus + Indy 10.5189)
В проекте нет кода по обработчикам событий. На форме IdHTTP, наблюдаются утечки памяти. Прошу.

Как уменьшить размер Lazarus.exe после установки компонентов?
Здравствуйте! После установки компонентов lazarus.exe весит около 200 мб. Есть ли какая нибудь.

Ошибка установки SQL Server 2008 на этапе правила установки
Здравствуйте, помогите пожалуйста с проблемой. Устанавливаю MS SQL Server 2008 на этапе «Правила.

После установки альфаскинов (неудачной установки) появилась ошибка
Здравствуйте! Помогите, пожалуйста, решить проблему. После установки альфаскинов (неудачной.

источник

Indy with Lazarus

Contents

Indy for Lazarus

A new attempt at converting Indy is being undertaken by the Indy core team. FPC developer Marco van de Voort is working with Indy core to get Indy fully working with FPC/Lazarus. Specially Indy’s JP Mugaas did a lot of good work in getting Indy10 to work with FPC. The native unixrtl backend is mostly his work too.

Currently Indy10 is nearly fully working, and end-user usability has been improved a lot. Only special topics like OpenSSL and compression might need additional knowledge. 64-bit support hasn’t entirely been validated either.

Hint: I’m not very interested in support the Kylix side of Indy. (anything that uses unit libc). I ported it only as step up to native Unix RTL using Indy apps.

Requirements

Currently, FPC 2.0.4 is very close to being able to use indy in all its facets, except for the server bug on FreeBSD/Mac OS X (which requires 2.1.1)

Since Indy10 now works for all major targets, we focus on this version. While conversion to Indy9 might be simpler for people, keep in mind that it only works on win32. (and theoretically could be ported to Linux/x86).

Therefore we recommend people to work with 10 as much as possible.

(For indy9, you might need to remove the overriding of tmemorystream.setsize method (Marcov: . ) to get telnet components working, but Indy9 hasn’t been tested in a while)

The port is fairly stable, and JP Mugaas has done a great deal to improve the quality of the release, a set of makefiles inclusive

Downloads / Links

Current snapshots (for die hards only) are at

What works, what not

  • Windows should largely work. Lots of demos ported.
  • Linux not or barely. No hope at non Linux/x86 (non-Kylix) targets.
  • Windows and Unix: clients work and servers should work fine in principle.
  • The main work for native Unix RTL done. Servers Clients seem to work with FreeBSD and OS X

All: secure versions not tested yet.

Short term plans

Problems

  • Indy9 and Indy10 are mutually exclusive, which causes problems for deployment, even the default is a problem:
    • Indy9 is more used and proven in the industry.
    • Indy10 is more portable, and better long term. However uptake seems to be low, and there is not much movement at Indy anymore.
  • How to deploy? Parts belong to Lazarus, parts to FPC.
  • Lot of pkgs and demos have paths in them. How to centrally fix them so that inexperienced users can build them?
  • Lazarus problems
    • Transparency problems of icons
    • component tabs don’t scroll, if you put a lot of components in one tab, they are not selectable. workaround implemented: JP Mugaas separated them into Indy clients A-M and N-Z etc. Also, meanwhile Lazarus changed to two rows of components per tab.
  • Indy demos (specially Indy10’s) are not very suitable for multiplatform usage. Their setup is awfully windows specific, with spaces in paths, deep nested dirs, and useless baggage (C# code). A short working set of demos will have to be created.
  • Indy10 servers didn’t work before due to an exception occurring during startup, which shut everything down. You need FPC 2.2(.0) or later to fix this (pthread_kill problem). This probably also affects Mac OS X.
  • During demo conversion, the bindings property is often wrongly converted. This can result in strange errors, specially because Indy seems to bind to the same port using both IPV4 and IPV6 at the same time.
Читайте также:  Установка крана печки калина

Ubuntu 10.04 + Lazarus 0.9.28 + Indy 10(Server Component) -> launch & do nothing (just crash)

Solution (bruce0829@yahoo.com.tw collect and organize data):

(1).Lazarus Main menu -> Project -> Compiler Options -> Other Page , add the «-dUseCThreads» parameter. (2).force the IdTCPServer to work in Id_IPV4 mode.

(3)use TIdSync to Control your GUI in IdTCPServer’s OnExecute() even.

How to install

Matthijs: So it is not perfect yet, but you want to try it. Here is how you install it in Lazarus.

  • Open and compile indysystemlaz.lpk
  • Open and compile indycorelaz.lpk
  • Open and compile indyprotocolslaz.lpk
  • Open, compile and install dclindycorelaz.lpk
  • Open, compile and install dclindyprotocolslaz.lpk

Then rebuild Lazarus and you will see a 15 tab’s with Indy components.

How to install on debian/ubuntu

  • # cd indy-10.2.0.1/fpc
  • # chmod +x debian/rules
  • # touch README
  • # sudo apt-get install fakeroot
  • # dpkg-buildpackage -rfakeroot -uc
  • # cd ..
  • # sudo dpkg -i *.deb
  • install package indylaz.lpk in lazarus

How to install [2]

If you couldn’t install Indy for Lazarus with tips above, you can try this.

Version installed on Lazarus 0.9.24 using component indy-10.2.0.1.

  • Unzip the component from file tar.gz (must be this file, the «zip file» does not work) in directory $(LazarusDir)\components;
  • Go to directory $(LazarusDir)\components\indy-10.2.0.1\ and to create inside them a directory named «saved»;
  • Copy the content of the directory $(LazarusDir)\components\indy-10.2.0.1\lazarus\ to directory «saved» created above;
  • Copy the content of directory $(LazarusDir)\components\indy-10.2.0.1\fpc\ to directory $(LazarusDir)\components\indy-10.2.0.1\lazarus, and rewrite all files, ok;
  • Get the content of directory «saved» and copy inside of $(LazarusDir)\components\indy-10.2.0.1\lazarus and you can delete «saved» directory now;
  • Install the package laz.lpk (available in $(LazarusDir)\components\indy-10.2.0.1\lazarus\indy) of conventional way.

On LINUX the path is: /usr/lib/lazarus/components/indy-10.2.0.1/

How to install [3] Windows and Debian linux, Indy 10.5.8.0 and above

  • Need working Lazarus (and FPC) for this
  • Download from http://www.indyproject.org/Sockets/Download/DevSnapshot.EN.aspx. Or from the alternate web site for the updated and current versions: http://indy.fulgan.com/
  • unpack into a directory
  • copy the *.pas, *.lrs and *.inc of the \Lib\System, \Lib\Core, and \Lib\Protocols subdirectories into a new directory of your choosing
  • copy the indylaz.lpk in the \Lib directory to the directory you created above
  • from within Lazarus do a Package -> Open package file, open the indylaz.lpk
  • in the Package Options dialog, add the path to the directory you created above to the «Unit» field.
  • compile then install (will rebuild Lazarus). EDIT: Currently, due to a know bug in FPC, you must compile the Indy package TWICE before installing it.

In order to write & compile Indy10 applications, you need to put the path to the Indy directory in the «Other Unit files» textbox of every project that you write. You’ll find «Other Unit files» under Project Options -> Compiler Options -> Paths.

How to install (confirmed) on Windows — Indy 10.2.03

/* How to install [3] Windows, Indy 10.5.8.0 and above */ For a lot of users, I’m sure that the information given above won’t work, or will be somewhat confusing given the differences between versions and inconsistent explanations.

The website points you to download the latest version from the snapshots page. This wiki tells you to copy a lot of files over into directories. For me, neither worked, and ended up making a mess of my Lazarus installations.

  1. Firstly, the page I would retrieve this from is here. Other sites I tried had problems with some files inside the archive.
  2. When you open up the archive above, you will see there are folders: «fpc» and «lazarus».
    1. You can copy the contents of «fpc» into: LAZARUS_DIR\fpc\2.6.0\source\packages\indylaz if you want to have things neat and tidy.
    2. The «lazarus» folder, you copy into LAZARUS_DIR\components\indylaz
    3. With both of these, make sure that there isn’t a sub-directory inside the folders given. i.e. LAZARUS_DIR\components\indylaz\lazarus\
  3. Go into Lazarus and go to «Package» -> «Open package file» and point it to the «indylaz.lpk» inside the LAZARUS_DIR\components\indylaz directory.
  4. Once the package loads inside your project, click on the «options» button, which resembles an image of a parcel with a cog next to it.
  5. Click the «Compiler Options» on the left-hand side and Click on the «..» button next to «Other unit files (-Fu) (delimiter is semicolon)».

Select the «fpc» then «lazarus» folders you created above and click OK. Lazarus will sort out the relative path for you. Don’t change it.

    Click OK and compile and then direct angry bile towards the indiv >Issue on Windows 64 bits

источник

Добавить комментарий