fpc 2.4.0 не компилит Sockets

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

fpc 2.4.0 не компилит Sockets

Сообщение pihter » 13.01.2010 02:54:04

Всем доброго времени суток. Раньше, на fpc 2.2.0 писал небольшой сервачек, с использованием функций из модуля Sockets. fpc 2.4.0 отказывается компилировать, выдает ощибки следующего содержания:

Код: Выделить всё
Compiling pihter_server.pas
pihter_server.pas(60,25) Error: Identifier not found "Socket"
pihter_server.pas(66,9) Error: Identifier not found "Bind"
pihter_server.pas(67,11) Error: Identifier not found "Listen"
pihter_server.pas(76,13) Error: Wrong number of parameters specified for call to "Accept"
pihter_server.pas(105,13) Error: Identifier not found "Shutdown"
pihter_server.pas(136,11) Error: Identifier not found "Send"
pihter_server.pas(151,18) Error: Identifier not found "Recv"


Это при том, что модуль Sockets подключен. fpc 2.2.0 все нормально компилировал.

Более того, новая версия fpc не компилирует даже пример использования сокетов, взятый с оф сайта компилятора.
Вот официальное описание функции Accept из модуля Sockets, там в конце есть пример использования функции:
http://community.freepascal.org:10000/docs-html/rtl/sockets/accept.html

А вот что выдает fpc, при попытке этот пример скомпилировать:
Код: Выделить всё
Free Pascal Compiler version 2.4.0 [2009/12/18] for i386
Copyright (c) 1993-2009 by Florian Klaempfl
Target OS: Win32 for i386
Compiling p.pas
p.pas(27,13) Error: Identifier not found "Socket"
p.pas(34,14) Error: Identifier not found "Bind"
p.pas(36,17) Error: Identifier not found "Listen"
p.pas(39,28) Error: Call by var for arg no. 2 has to match exactly: Got "ShortString" expected "sockaddr_in"
p.pas(40,33) Warning: Variable "FromName" does not seem to be initialized
p.pas(51) Fatal: There were 4 errors compiling module, stopping
Fatal: Compilation aborted
Error: C:\FPC\2.4.0\bin\i386-Win32\ppc386.exe returned an error exitcode (normal if you did not specify a source file to be compiled)


То есть он не компилирует пример, взятый с сайта. Неужели разработчики пропустили такой баг в релизе? Что-то не верю... У кого-нибудь есть идеи? Где я неправ? Заранее благодарю.
pihter
новенький
 
Сообщения: 12
Зарегистрирован: 13.01.2010 02:40:33

Re: fpc 2.4.0 не компилит Sockets

Сообщение Alexx2000 » 13.01.2010 03:17:59

Вот тут в описании изменений версии 2.4.0 есть кое-какая информация относительно сокетов.
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 489
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Re: fpc 2.4.0 не компилит Sockets

Сообщение Logo » 13.01.2010 03:36:18

Это устаревшие функции, их рекомендуется заменить на такие же с приставкой "fp", например, "fpSocket". Но старые можно также использовать, перекомпилировав FPC с параметром "-dlegacysocket", например:
Код: Выделить всё
make clean all PP=/usr/local/lib/fpc/2.5.1/ppcx64 COMPILER_OPTIONS="-g -gl -O1 -dlegacysocket"

# make clean all PP=/usr/local/lib/fpc/2.5.1/ppcx64 COMPILER_OPTIONS="-g -gl -O1 -dlegacysocket"
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: fpc 2.4.0 не компилит Sockets

Сообщение pihter » 13.01.2010 03:38:29

Вот тут в описании изменений версии 2.4.0 есть кое-какая информация относительно сокетов.


Не, эт не то. Это, как я понял со своим рязанским английским, про то, что убрана поддержка функций вида fpbind или там fprecv. Они дублируют функции bind и recv и путаницу наводят. А раньше их оставляли для совместимости с ранними версиями компилятора.

Так что, думаю: нет, не то. Кстати, а может у кого завалялась инсталяжка fpc-win32-i386-2.2.0 ? я бы пока с ней поработал. Не смог найти нигде, в тч на офсайте? Кому не жалко, выложите, был бы оч благодарен.
pihter
новенький
 
Сообщения: 12
Зарегистрирован: 13.01.2010 02:40:33

Re: fpc 2.4.0 не компилит Sockets

Сообщение Logo » 13.01.2010 03:41:56

Эта не подойдет? http://sourceforge.net/projects/freepascal/files/Win32/2.2.2/fpc-2.2.2.i386-win32.exe/download В ней должно быть, как в 2.2.0
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: fpc 2.4.0 не компилит Sockets

Сообщение Alexx2000 » 13.01.2010 03:49:17

pihter писал(а):Не, эт не то. Это, как я понял со своим рязанским английским, про то, что убрана поддержка функций вида fpbind или там fprecv. Они дублируют функции bind и recv и путаницу наводят. А раньше их оставляли для совместимости с ранними версиями компилятора.

Насколько я понял, как раз наоборот были убраны функции без префикса. И в решении написано, что надо использовать функции с префиксом fp:
Remedy: Use the fp* functions. Be aware of some differences in the argument types (pointer types vs. var-parameters), which may require an extra @-operator for certain parameters.
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 489
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Re: fpc 2.4.0 не компилит Sockets

Сообщение pihter » 13.01.2010 03:54:17

Не, эт не то. Это, как я понял со своим рязанским английским, про то, что убрана поддержка функций вида fpbind или там fprecv. Они дублируют функции bind и recv и путаницу наводят. А раньше их оставляли для совместимости с ранними версиями компилятора.

Эх, вот что значит английский прогуливал! Понял все совсем наоборот. Дураком выгляжу :(
Это устаревшие функции, их рекомендуется заменить на такие же с приставкой "fp", например, "fpSocket"

Да, Logo, ты чертовски прав. Переделал функции как ты сказал, исправил данные, где нужно, на указатели, и (ВУАЛЯ!) все откомпилировалось.

Думаю, тему можно закрыть, проблема решена. Откликнувшимся камрадам, огромное спасибо. Пинг вашему дому.
pihter
новенький
 
Сообщения: 12
Зарегистрирован: 13.01.2010 02:40:33

Re: fpc 2.4.0 не компилит Sockets

Сообщение alexrayne » 13.01.2010 19:11:44

А кто нить обсуждал ето кидалово на багтрекере ихнем - чем им могли помешать старые имена.
говорят что overloadы у них несходятся, думаю лажа ето.
alexrayne
постоялец
 
Сообщения: 125
Зарегистрирован: 03.12.2008 16:56:26


Вернуться в Free Pascal Compiler

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

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

Рейтинг@Mail.ru