Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Помогите навичку устанавить модуль


Автор: usersai 9.7.2005, 12:43
Привет всем.
Проблема такова: ставлю модуль DBI по WinXP, при выполнении makefile.pl ошибок вроде не возникает, а при выполнении nmake (из VC++ 6.0) происходит ошибка и модуль не ставиться.
Как это выглядело:
Код

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

c:\Downloads\DBI-1.48\DBI-1.48>makefile.pl

*** You are using a perl configured with threading enabled.
*** You should be aware that using multiple threads is
*** not recommended for production environments.

*** Note:
    The optional PlRPC-modules (RPC::PlServer etc) are not installed.
    If you want to use the DBD::Proxy driver and DBI::ProxyServer
    modules, then you'll need to install the RPC::PlServer, RPC::PlClient,
    Storable and Net::Daemon modules. The CPAN Bundle::DBI may help you.
    You can install them any time after installing the DBI.
    You do *not* need these modules for typical DBI usage.

Optional modules are available from any CPAN mirror, in particular
    http://search.cpan.org/
    http://www.perl.com/CPAN/modules/by-module
    http://www.perl.org/CPAN/modules/by-module
    ftp://ftp.funet.fi/pub/languages/perl/CPAN/modules/by-module

*** You're using Microsoft Visual C++ compiler but the LIB and INCLUDE environme
nt
    variables are not both set. If you have 'unresolved external symbol'
    errors during linking, run the vcvars32.bat batch file to set up your
    LIB and INCLUDE environment variables, and try again.
    A copy of vcvars32.bat can typically be found in the following
    directories under your Visual Studio install directory:
        Visual C++ 6.0:     vc98\bin
        Visual Studio .NET: vc7\bin

Creating DBI::PurePerl    test variant: t/zvpp_01basics.t
Creating DBI::PurePerl    test variant: t/zvpp_02dbidrv.t
Creating DBI::PurePerl    test variant: t/zvpp_03handle.t
Creating DBI::PurePerl    test variant: t/zvpp_04mods.t
Creating DBI::PurePerl    test variant: t/zvpp_05thrclone.t (use threads)
Creating DBI::PurePerl    test variant: t/zvpp_06attrs.t
Creating DBI::PurePerl    test variant: t/zvpp_07kids.t
Creating DBI::PurePerl    test variant: t/zvpp_08keeperr.t
Creating DBI::PurePerl    test variant: t/zvpp_09trace.t
Creating DBI::PurePerl    test variant: t/zvpp_10examp.t
Creating DBI::PurePerl    test variant: t/zvpp_11fetch.t
Creating DBI::PurePerl    test variant: t/zvpp_14utf8.t
Creating DBI::PurePerl    test variant: t/zvpp_15array.t
Creating DBI::PurePerl    test variant: t/zvpp_20meta.t
Creating DBI::PurePerl    test variant: t/zvpp_30subclass.t
Creating DBI::PurePerl    test variant: t/zvpp_40profile.t
Creating DBI::PurePerl    test variant: t/zvpp_41prof_dump.t
Creating DBI::PurePerl    test variant: t/zvpp_42prof_data.t
Creating DBI::PurePerl    test variant: t/zvpp_50dbm.t
Creating DBI::PurePerl    test variant: t/zvpp_60preparse.t
Creating DBI::PurePerl    test variant: t/zvpp_80proxy.t
Checking if your kit is complete...
Looks good

Warning: By default new modules are installed into your 'site_lib'
         directories. Since site_lib directories come after the normal library
         directories you must delete old DBI files and directories from your
         'privlib' and 'archlib' directories and their auto subdirectories.

Reinstall DBI and your DBD::* drivers after deleting the old directories.

Here's a list of probable old files and directories:

 C:/Perl/lib/DBD
 C:/Perl/lib/DBI
 C:/Perl/lib/DBI.pm
 C:/Perl/lib/DBI/Const
 C:/Perl/lib/DBI/Const/GetInfo
 C:/Perl/lib/DBI/Const/GetInfo/ANSI.pm
 C:/Perl/lib/DBI/Const/GetInfo/ODBC.pm
 C:/Perl/lib/DBI/Const/GetInfoReturn.pm
 C:/Perl/lib/DBI/Const/GetInfoType.pm
 C:/Perl/lib/DBI/DBD
 C:/Perl/lib/DBI/DBD.pm
 C:/Perl/lib/DBI/DBD/Metadata.pm
 C:/Perl/lib/DBI/FAQ.pm
 C:/Perl/lib/DBI/Profile.pm
 C:/Perl/lib/DBI/ProfileData.pm
 C:/Perl/lib/DBI/ProfileDumper
 C:/Perl/lib/DBI/ProfileDumper.pm
 C:/Perl/lib/DBI/ProfileDumper/Apache.pm
 C:/Perl/lib/DBI/ProxyServer.pm
 C:/Perl/lib/DBI/PurePerl.pm
 C:/Perl/lib/DBI/SQL
 C:/Perl/lib/DBI/SQL/Nano.pm
 C:/Perl/lib/DBI/W32ODBC.pm
 C:/Perl/lib/Win32/DBIODBC.pm


    I see you're using perl 5.008003 on MSWin32-x86-multi-thread, okay.
    Remember to actually *read* the README file!
    Use  'make' to build the software (dmake or nmake on Windows).
    Then 'make test' to execute self tests.
    Then 'make install' to install the DBI and then delete this working
    directory before unpacking and building any DBD::* drivers.

    Windows users need to use the correct make command.
    That may be nmake or dmake depending on which Perl you are using.
    If using the Win32 ActiveState build then it is recommended that you
    use the ppm utility to fetch and install a prebuilt DBI instead.

Writing Makefile for DBI

c:\Downloads\DBI-1.48\DBI-1.48>nmake

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

        C:\Perl\bin\perl.exe -MExtUtils::Command -e cp Changes blib\lib\DBI\Chan
ges.pm
        C:\Perl\bin\perl.exe -MExtUtils::Command -e cp Roadmap.pod blib\lib\DBI\
Roadmap.pm
cp dbd_xsh.h blib\arch\auto\DBI\dbd_xsh.h
cp dbivport.h blib\arch\auto\DBI\dbivport.h
cp lib/DBI/FAQ.pm blib\lib\DBI\FAQ.pm
cp Driver_xst.h blib\arch\auto\DBI\Driver_xst.h
cp lib/DBD/Proxy.pm blib\lib\DBD\Proxy.pm
cp lib/DBI/SQL/Nano.pm blib\lib\DBI\SQL\Nano.pm
cp lib/DBI/Const/GetInfo/ANSI.pm blib\lib\DBI\Const\GetInfo\ANSI.pm
cp lib/DBD/DBM.pm blib\lib\DBD\DBM.pm
cp DBI.pm blib\lib\DBI.pm
cp lib/DBI/Const/GetInfoReturn.pm blib\lib\DBI\Const\GetInfoReturn.pm
cp DBIXS.h blib\arch\auto\DBI\DBIXS.h
cp lib/DBD/Sponge.pm blib\lib\DBD\Sponge.pm
cp Roadmap.pod blib\lib\Roadmap.pod
cp lib/DBI/Const/GetInfoType.pm blib\lib\DBI\Const\GetInfoType.pm
cp lib/DBI/W32ODBC.pm blib\lib\DBI\W32ODBC.pm
cp lib/DBI/DBD/Metadata.pm blib\lib\DBI\DBD\Metadata.pm
cp lib/DBI/Const/GetInfo/ODBC.pm blib\lib\DBI\Const\GetInfo\ODBC.pm
cp lib/DBI/ProfileDumper/Apache.pm blib\lib\DBI\ProfileDumper\Apache.pm
cp lib/Bundle/DBI.pm blib\lib\Bundle\DBI.pm
cp lib/DBI/Profile.pm blib\lib\DBI\Profile.pm
cp lib/DBI/ProfileDumper.pm blib\lib\DBI\ProfileDumper.pm
cp lib/DBD/File.pm blib\lib\DBD\File.pm
cp Driver.xst blib\arch\auto\DBI\Driver.xst
cp lib/DBI/ProxyServer.pm blib\lib\DBI\ProxyServer.pm
cp dbipport.h blib\arch\auto\DBI\dbipport.h
cp lib/DBD/NullP.pm blib\lib\DBD\NullP.pm
cp lib/DBI/DBD.pm blib\lib\DBI\DBD.pm
cp lib/Win32/DBIODBC.pm blib\lib\Win32\DBIODBC.pm
cp dbi_sql.h blib\arch\auto\DBI\dbi_sql.h
cp lib/DBI/PurePerl.pm blib\lib\DBI\PurePerl.pm
cp lib/DBD/ExampleP.pm blib\lib\DBD\ExampleP.pm
cp lib/DBI/ProfileData.pm blib\lib\DBI\ProfileData.pm
        C:\Perl\bin\perl.exe -p -e "s/~DRIVER~/Perl/g" ./Driver.xst > Perl.xsi
        C:\Perl\bin\perl.exe C:\Perl\lib\ExtUtils/xsubpp  -typemap C:\Perl\lib\E
xtUtils\typemap -typemap typemap  Perl.xs > Perl.xsc && C:\Perl\bin\perl.exe -ME
xtUtils::Command -e mv Perl.xsc Perl.c
        cl -c    -nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_ST
RICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SY
S -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1    -DVERSION=\"1.48\"
 -DXS_VERSION=\"1.48\"  "-IC:\Perl\lib\CORE"   Perl.c
"cl" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
NMAKE : fatal error U1077: 'cl' : return code '0x1'
Stop.

c:\Downloads\DBI-1.48\DBI-1.48>


Помогите навичку разобраться в чем дело.


Автор: korob2001 9.7.2005, 13:18
Ты установил драйвер той базы, с которой планируешь работать? Если это MySQL, то сначало нужно установить модуль DBD::mysql, а только потом DBI. Попробуй и сообщи о результатах. А вообще нужно читать README файл, там всё расписано. И зачем устанавливать DBI при помощи Visual С++? Помоему этот модуль очень хорошо становится при помощи ppm.

Автор: d0k 11.7.2005, 05:05
Проверь что-бы path в виндах был прописан к bin директориям VC.

Автор: Alexzander 11.7.2005, 08:14
Цитата
NMAKE : fatal error U1077: 'cl' : return code '0x1'


как я это делаю степ-бай-степ:
1. запускаем cmd.exe. Для этого надо либо нажать Win+R и написать 'cmd', либо запустить Far и там в командной строке ввести 'cmd'.
2. Уже в командной строке cmd.exe пишем cd /D <путь к VC>\VC98\Bin\vcvars32.bat
3. Ну и наконец переходим командой cd в нужный тебе каталог модуля и пишем:
perl makefile.pl
nmake
nmake test
nmake install
( последовательность и необходимость таких команд как nmake test лучше посмотреть в README)

Автор: usersai 12.7.2005, 09:20
Всем спасибо за советы, теперь все отлично устанавливается.

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