Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > DBD::InterBase и yaffil


Автор: shamber 19.3.2008, 15:40
ПРивет  всем.

Кто-нибудь работал с yaffil? 
после установки модуля через ppm, он не подключается к базе, пишет что не может загрузить файл.

Код

Can't load 'C:/Perl/site/lib/auto/DBD/InterBase/InterBase.dll' for module DBD::InterBase: load_file:Не найден указанный модуль at C:/Perl/lib/DynaLoader.pm line 230.
 at C:\Perl\!My\DB\lan2net\perl.pl line 4
Compilation failed in require at C:\Perl\!My\DB\lan2net\perl.pl line 4.
BEGIN failed--compilation aborted at C:\Perl\!My\DB\lan2net\perl.pl line 4.

Автор: KSURi 19.3.2008, 17:07
Попробуй руками положить InterBase.dll из дистрибутива на CPAN в site/lib/auto/DBD/InterBase

Автор: shamber 19.3.2008, 17:10
 а где на cpan dll?

Вообще в папке auto эта dll лежит припеваючи

Автор: KSURi 19.3.2008, 18:27
http://search.cpan.org/CPAN/authors/id/E/ED/EDPRATOMO/DBD-InterBase-0.48.tar.gz - вот здесь)
ну и на всякий случай попробуй обновить DynaLoader.

Автор: shamber 20.3.2008, 10:53
KSURi, ты имел ввиду скомпилить dll?

Автор: KSURi 20.3.2008, 12:54
Перечитал свои посты, пожалуй неясно выразился(
Да, я имел ввиду попробовать собрат на той машине, куда ты ставить модуль будешь.

Автор: shamber 1.4.2008, 14:43
При попытке компилирования пишет что не может найти мою установку interbase
Код

Cannot proceed. Aborting..
I cannot find your InterBase/Firebird installation.
DBD::InterBase cannot build or run without InterBase.

Хотя yaffil установлен

Автор: tishaishii 5.4.2008, 13:45
Ну напиши в PATH все места на всякий случай перед сборкой. Тогда найдёт.
Дальше решайем проблемы по мере поступления.

У тебя что за ОСC?

Автор: shamber 7.4.2008, 09:43
WinXP

Автор: tishaishii 8.4.2008, 17:43
Ну после perl Makefile.PL он не находит Firebird.
Добавь "C:\Program Files\Firebird\Firebird_2xxx\bin" в переменную окружения PATH.
Установи, например, MSVC.NET 03-05, запиши путь к ld.exe в PATH, к include в INCLUDE, к lib в LIB.
Открой другое окно с командной строкой, выполни снова perl Makefile.PL
Что пишет?

Автор: shamber 9.4.2008, 09:18
tishaishii, MS уже стоит.
makefile отрабатывает.
а дальше при попытке nmake
Код

        cl -c  -I"C:\Program Files\Firebird\Firebird_2_0\include" -I"C:/Perl/sit
e/lib/auto/DBI"  -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_ST
RICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEX
T -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1
 -DVERSION=\"0.48\"  -DXS_VERSION=\"0.48\"  "-IC:\Perl\lib\CORE"   InterBase.c
InterBase.c
InterBase.xs(407) : warning C4244: '=' : conversion from 'long ' to 'short ', po
ssible loss of data
InterBase.xs(409) : warning C4244: '=' : conversion from 'long ' to 'short ', po
ssible loss of data
InterBase.xs(410) : warning C4244: '=' : conversion from 'long ' to 'short ', po
ssible loss of data
InterBase.xs(411) : warning C4244: '=' : conversion from 'long ' to 'short ', po
ssible loss of data
InterBase.xs(412) : warning C4244: '=' : conversion from 'long ' to 'short ', po
ssible loss of data
InterBase.xs(416) : error C2275: 'HV' : illegal use of this type as an expressio
n
        C:\Perl\lib\CORE\perl.h(2090) : see declaration of 'HV'
InterBase.xs(416) : error C2065: 'reshv' : undeclared identifier
InterBase.xs(420) : error C2143: syntax error : missing ';' before 'type'
InterBase.xs(430) : warning C4047: '=' : 'int ' differs in levels of indirection
 from 'struct hv *'
InterBase.xs(439) : warning C4047: 'function' : 'struct hv *' differs in levels
of indirection from 'int '
InterBase.xs(439) : warning C4024: 'Perl_hv_store' : different types for formal
and actual parameter 2
InterBase.xs(441) : warning C4047: 'function' : 'struct hv *' differs in levels
of indirection from 'int '
InterBase.xs(441) : warning C4024: 'Perl_hv_store' : different types for formal
and actual parameter 2
InterBase.xs(459) : error C2143: syntax error : missing ';' before 'type'
NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code '0x2'
Stop.


Автор: tishaishii 6.5.2008, 12:03
Да я и сам собрать смог только под линукс.
Для виндовс пришлось переписывать немного makefile.pl, затем makefile и почти всё по цепочке заголовочных файлов перл и ms vc .net 2003. Результат: с боями дошёл до линканья и упёрся во взяимосвязи библиотек.

Покуда результат под виндовс нулевой. Может, у кого есть готовая собранная dll или знает где взять, прежде чем пройдёт полгода и удастся-таки собрать её?

Автор: shamber 6.5.2008, 16:10
smile чувствуется что yaffil никому не нужен.
Мой прогноз

Цитата(tishaishii @  6.5.2008,  12:03 Найти цитируемый пост)
 пройдёт полгода 


smile

Автор: tishaishii 6.5.2008, 16:52
Ну я пользуюсь Firebird. И вот относительно ненужности его очень сомневаюсь. Походил по фирмам, для установки своей программы и уже за месяц, не считая своей, увидел как минимум 4 конкурирующих, использующих его же и уже установленных и использующихся программы.

Особого труда стоило подстроиться под разношёрстные версии его же Firebird на одном компе так, чтобы запараллелить работу всех этих программ и своей.

Тема актуальна.

Автор: shamber 8.5.2008, 13:31
сейчас пробовал компильнуть другие ошибки выдает
Код


        cl -c  -I"C:\Program Files\Firebird\Firebird_2_0\include" -I"C:/Perl/sit
e/lib/auto/DBI"   -MD -Zi -DNDEBUG -O1    -DVERSION=\"0.48\"  -DXS_VERSION=\"0.4
8\"  "-IC:\Perl\lib\CORE"   InterBase.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

InterBase.c
C:\Perl\lib\CORE\win32.h(326) : error C2143: syntax error : missing ')' before '
*'
C:\Perl\lib\CORE\win32.h(326) : error C2081: 'Stat_t' : name in formal parameter
 list illegal
C:\Perl\lib\CORE\win32.h(326) : error C2143: syntax error : missing '{' before '
*'
C:\Perl\lib\CORE\win32.h(326) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\win32.h(445) : error C2143: syntax error : missing ')' before '
*'
C:\Perl\lib\CORE\win32.h(445) : error C2143: syntax error : missing '{' before '
*'
C:\Perl\lib\CORE\win32.h(445) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(117) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(117) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(117) : error C2371: 'PerlIO_funcs' : redefinition; dif
ferent basic types
        C:\Perl\lib\CORE\perlio.h(100) : see declaration of 'PerlIO_funcs'
C:\Perl\lib\CORE\perlio.h(117) : error C2143: syntax error : missing ';' before
'*'
C:\Perl\lib\CORE\perlio.h(117) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(117) : error C2059: syntax error : ';'
C:\Perl\lib\CORE\perlio.h(118) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(118) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(118) : error C2059: syntax error : 'type'
C:\Perl\lib\CORE\perlio.h(120) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(121) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(121) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(121) : error C2040: 'PerlIO' : 'int ' differs in level
s of indirection from 'struct _PerlIO *'
C:\Perl\lib\CORE\perlio.h(121) : error C2143: syntax error : missing ';' before
'*'
C:\Perl\lib\CORE\perlio.h(121) : error C2371: 'PerlIO_funcs' : redefinition; dif
ferent basic types
        C:\Perl\lib\CORE\perlio.h(100) : see declaration of 'PerlIO_funcs'
C:\Perl\lib\CORE\perlio.h(121) : error C2143: syntax error : missing ';' before
'*'
C:\Perl\lib\CORE\perlio.h(121) : error C2059: syntax error : ','
C:\Perl\lib\CORE\perlio.h(122) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(123) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(123) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(123) : error C2040: 'PerlIO' : 'int ' differs in level
s of indirection from 'struct _PerlIO *'
C:\Perl\lib\CORE\perlio.h(123) : error C2143: syntax error : missing ';' before
'*'
C:\Perl\lib\CORE\perlio.h(123) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(124) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(124) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(124) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(124) : error C2040: 'PerlIO' : 'int ' differs in level
s of indirection from 'struct _PerlIO *'
C:\Perl\lib\CORE\perlio.h(124) : error C2143: syntax error : missing ';' before
'*'
C:\Perl\lib\CORE\perlio.h(124) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(125) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(125) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(125) : error C2143: syntax error : missing ';' before
'*'
C:\Perl\lib\CORE\perlio.h(126) : error C2143: syntax error : missing ';' before
'*'
C:\Perl\lib\CORE\perlio.h(126) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(220) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(220) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(220) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(233) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(233) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(233) : error C2059: syntax error : 'type'
C:\Perl\lib\CORE\perlio.h(235) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(345) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(345) : error C2081: 'SV' : name in formal parameter li
st illegal
C:\Perl\lib\CORE\perlio.h(345) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(345) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(345) : error C2059: syntax error : ';'
C:\Perl\lib\CORE\perlio.h(348) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(348) : error C2081: 'SV' : name in formal parameter li
st illegal
C:\Perl\lib\CORE\perlio.h(348) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(348) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(348) : error C2059: syntax error : ';'
C:\Perl\lib\CORE\perlio.h(351) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(351) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(351) : error C2040: 'PerlIO' : 'int ' differs in level
s of indirection from 'struct _PerlIO *'
C:\Perl\lib\CORE\perlio.h(351) : error C2143: syntax error : missing ';' before
'*'
C:\Perl\lib\CORE\perlio.h(351) : error C2059: syntax error : ','
C:\Perl\lib\CORE\perlio.h(351) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(360) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(360) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(360) : error C2040: 'PerlIO' : 'int ' differs in level
s of indirection from 'struct _PerlIO *'
C:\Perl\lib\CORE\perlio.h(360) : error C2143: syntax error : missing ';' before
'*'
C:\Perl\lib\CORE\perlio.h(360) : error C2059: syntax error : 'type'
C:\Perl\lib\CORE\perlio.h(361) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(364) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(364) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(364) : error C2040: 'PerlIO' : 'int ' differs in level
s of indirection from 'struct _PerlIO *'
C:\Perl\lib\CORE\perlio.h(364) : error C2143: syntax error : missing ';' before
'*'
C:\Perl\lib\CORE\perlio.h(364) : error C2059: syntax error : 'type'
C:\Perl\lib\CORE\perlio.h(365) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(371) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(371) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(371) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perlio.h(376) : error C2143: syntax error : missing ')' before
'*'
C:\Perl\lib\CORE\perlio.h(376) : error C2143: syntax error : missing '{' before
'*'
C:\Perl\lib\CORE\perlio.h(376) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\win32iop.h(73) : error C2143: syntax error : missing ')' before
 '*'
C:\Perl\lib\CORE\win32iop.h(73) : error C2081: 'Stat_t' : name in formal paramet
er list illegal
C:\Perl\lib\CORE\win32iop.h(73) : error C2143: syntax error : missing '{' before
 '*'
C:\Perl\lib\CORE\win32iop.h(73) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\win32iop.h(74) : error C2143: syntax error : missing ')' before
 '*'
C:\Perl\lib\CORE\win32iop.h(74) : error C2081: 'Stat_t' : name in formal paramet
er list illegal
C:\Perl\lib\CORE\win32iop.h(74) : error C2143: syntax error : missing '{' before
 '*'
C:\Perl\lib\CORE\win32iop.h(74) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\win32iop.h(77) : error C2146: syntax error : missing ')' before
 identifier 'narg'
C:\Perl\lib\CORE\win32iop.h(77) : error C2081: 'IV' : name in formal parameter l
ist illegal
C:\Perl\lib\CORE\win32iop.h(77) : error C2061: syntax error : identifier 'narg'
C:\Perl\lib\CORE\win32iop.h(77) : error C2059: syntax error : ';'
C:\Perl\lib\CORE\win32iop.h(77) : error C2059: syntax error : ','
C:\Perl\lib\CORE\win32iop.h(77) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\win32iop.h(133) : error C2143: syntax error : missing ')' befor
e '*'
C:\Perl\lib\CORE\win32iop.h(133) : error C2081: 'Stat_t' : name in formal parame
ter list illegal
C:\Perl\lib\CORE\win32iop.h(133) : error C2143: syntax error : missing '{' befor
e '*'
C:\Perl\lib\CORE\win32iop.h(133) : error C2059: syntax error : ')'
C:\Perl\lib\CORE\perl.h(1108) : warning C4273: 'win32_strerror' : inconsistent d
ll linkage.  dllexport assumed.
C:\Perl\lib\CORE\perl.h(2079) : error C2371: 'PerlInterpreter' : redefinition; d
ifferent basic types
        C:\Perl\lib\CORE\perlio.h(125) : see declaration of 'PerlInterpreter'
C:\Perl\lib\CORE\perl.h(2079) : fatal error C1003: error count exceeds 100; stop
ping compilation
NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code '0x2'
Stop.

ну что с ней делать? :(  smile  smile 

ЗЫ мастера компиляции .....  где вы ?

Автор: tishaishii 8.5.2008, 16:01
smile))) "мастера компиляции" smile))) да тут надо вопрос поднять про то, что, видать, модуль не сильно-таки расчитан на виндовс.  Колупаю уже недели две с половиной по чуть-чуть. И, странно, в инете по этой теме ни чего особо путного не нашёл пока.

Автор: shamber 13.5.2008, 16:34
tishaishii
попробуй https://dbi-interbase.svn.sourceforge.net/svnroot/dbi-interbase/trunk/dbi-interbase/ фалы скачать

у меня по крайней мере скомпилировался правда работать еще не пробовал

Автор: tishaishii 18.11.2009, 13:57
А где брать gds32_ms.lib?

Код
C:\INSTALL\DBD-Interbase>nmake | more

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

        link -out:blib\arch\auto\DBD\InterBase\InterBase.dll /LIBPATH:"C:\Progra
m Files\Microsoft Visual Studio 8\VC\bin/lib" -dll -nologo -nodefaultlib -debug
-opt:ref,icf -ltcg  -libpath:"C:\Perl64\lib\CORE"  -machine:AMD64 InterBase.obj
dbdimp.obj   C:\Perl64\lib\CORE\perl510.lib "1/gds32_ms.lib"   oldnames.lib kern
el32.lib user32.lib gdi32.lib winspool.lib  comdlg32.lib advapi32.lib shell32.li
b ole32.lib oleaut32.lib  netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib  ve
rsion.lib odbc32.lib odbccp32.lib bufferoverflowU.lib msvcrt.lib -def:InterBase.
def
LINK : fatal error LNK1181: cannot open input file '1/gds32_ms.lib'
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 8\VC
\BIN\amd64\link.EXE"' : return code '0x49d'
Stop.

Автор: BlackLFL 2.7.2013, 17:04
tishaishii, в итоге Вы решили проблему?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)