Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^2: DBD::Sybase with Sybase 15.0

by Anonymous Monk
on Nov 08, 2007 at 21:10 UTC ( #649804=note: print w/replies, xml ) Need Help??


in reply to Re: DBD::Sybase with Sybase 15.0
in thread DBD::Sybase with Sybase 15.0

This still isn't working. Here is what I did: 0) The libraries for 15.0 changed names:
c:\DBD-Sybase-1.08>ls %SYBASE%\OCS-15_0\lib libsybblk.lib libsybcs.lib libsybct.lib libsybdb.lib c:\DBD-Sybase-1.08>ls %SYBASE%\OCS-15_0\lib3p defaultmem.dll libplc21.dll nsldapssl32v40.dll libnspr21.dll libplds21.dll sbgse2.dll c:\DBD-Sybase-1.08>ls %SYBASE%\OCS-15_0\dll debug libsybdb.dll libsybintl.dll libsybtcl.dll libsybblk.dll libsybddce.dll libsybsdce.dll libsybunic.dll libsybcomn.dll libsybdldap.dll libsybskrb.dll nondebug libsybcs.dll libsybdreg.dll libsybsmssp.dll libsybct.dll libsybfssl.dll libsybsrv.dll
1) Modified Makefile.PL to remove the references to the libraries that do not exist:
if($^O eq 'MSWin32') { # $lib_string = "-L$SYBASE/lib -llibct.lib -llibcs.lib -llibtcl.lib + -llibcomn.lib -llibintl.lib -llibblk.lib $attr{EXTRA_LIBS} -lm"; $lib_string = "-L$SYBASE/lib -llibsybct.lib -llibsybcs.lib $attr{E +XTRA_LIBS}";
Note that some of the previous libraries are now dll's. 2) Run perl Makefile.PL
Multiple copies of Driver.xst found in: C:/Perl/site/lib/auto/DBI/ C:/ +Perl/lib/auto/DBI/ at Makefile.PL line 64 Using DBI 1.57 (for perl 5.008008 on MSWin32-x86-multi-thread) install +ed in C:/Perl/site/lib/auto/DBI/ Writing Makefile for DBD::Sybase
3) Now run nmake: This is just the last bit....
dbdimp.c(5634) : warning C4996: 'strtok' was declared deprecated C:\msvs8\VC\INCLUDE\string.h(164) : see declaration of 'strtok' Message: 'This function or variable may be unsafe. Consider us +ing strtok _s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See +online hel p for details.' dbdimp.c(5637) : warning C4996: 'strncpy' was declared deprecated C:\msvs8\VC\INCLUDE\string.h(156) : see declaration of 'strncp +y' Message: 'This function or variable may be unsafe. Consider us +ing strncp y_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See + online he lp for details.' Running Mkbootstrap for DBD::Sybase () C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 Sybase.b +s link -out:blib\arch\auto\DBD\Sybase\Sybase.dll -LC:\sybase70/O +CS-15_0/li b -dll -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\li +b\CORE" - machine:x86 Sybase.obj dbdimp.obj C:\Perl\lib\CORE\perl58.lib C:\sy +base70\OCS -15_0\lib\libsybct.lib C:\sybase70\OCS-15_0\lib\libsybcs.lib C:\msvs8\ +VC\LIB\old names.lib C:\msvs8\VC\LIB\kernel32.lib C:\mssdk\Lib\user32.lib C:\mssd +k\Lib\gdi3 2.lib C:\mssdk\Lib\winspool.lib C:\mssdk\Lib\comdlg32.lib C:\mssdk\Lib +\advapi32. lib C:\mssdk\Lib\shell32.lib C:\mssdk\Lib\ole32.lib C:\mssdk\Lib\oleau +t32.lib C: \mssdk\Lib\netapi32.lib C:\mssdk\Lib\uuid.lib C:\mssdk\Lib\ws2_32.lib +C:\mssdk\L ib\mpr.lib C:\mssdk\Lib\winmm.lib C:\mssdk\Lib\version.lib C:\mssdk\Li +b\odbc32.l ib C:\mssdk\Lib\odbccp32.lib C:\msvs8\VC\LIB\msvcrt.lib -def:Sybase.de +f LINK : warning LNK4044: unrecognized option '/LC:\sybase70/OCS-15_0/li +b'; ignore d Creating library blib\arch\auto\DBD\Sybase\Sybase.lib and object bl +ib\arch\au to\DBD\Sybase\Sybase.exp dbdimp.obj : error LNK2019: unresolved external symbol _blk_done@12 re +ferenced i n function _syb_blk_done dbdimp.obj : error LNK2019: unresolved external symbol _blk_rowxfer@4 +referenced in function _syb_blk_execute dbdimp.obj : error LNK2019: unresolved external symbol _blk_bind@24 re +ferenced i n function _syb_blk_execute dbdimp.obj : error LNK2019: unresolved external symbol _blk_drop@4 ref +erenced in function _blkCleanUp dbdimp.obj : error LNK2019: unresolved external symbol _blk_describe@1 +2 referenc ed in function _syb_blk_init dbdimp.obj : error LNK2019: unresolved external symbol _blk_init@16 re +ferenced i n function _syb_blk_init dbdimp.obj : error LNK2019: unresolved external symbol _blk_props@24 r +eferenced in function _syb_blk_init dbdimp.obj : error LNK2019: unresolved external symbol _blk_alloc@12 r +eferenced in function _syb_blk_init blib\arch\auto\DBD\Sybase\Sybase.dll : fatal error LNK1120: 8 unresolv +ed externa ls NMAKE : fatal error U1077: 'C:\msvs8\VC\BIN\link.EXE' : return code '0 +x460' Stop.
I have been through the archives at http://www.peppler.org/cgi-bin/searcharc.cgi. I do not find any reference to anyone compiling this for Sybase 15 on Windows. The ppd module located at http://www.peppler.org/downloads/ActiveState/ still is looking for the libraries pre-Sybase 15.0. I did comment out the set line in dbimp.c. So, I'm guessing I'm not changing the library line correctly? Is there something else I need to do? Thank you

Replies are listed 'Best First'.
Re^3: DBD::Sybase with Sybase 15.0
by mpeppler (Vicar) on Nov 09, 2007 at 15:56 UTC
    You need to add -lsybblk.lib to that $lib_string line.

    Michael

      So close, yet so far ..... I actually get the program to compile, just doesn't work.
      Can't load 'C:/Perl/site/lib/auto/DBD/Sybase/Sybase.dll' for module DB +D::Sybase: load_file:A dynamic link library (DLL) initialization routine failed +at /<C:\Pr
      Here's where I'm at: 1) Make the library changes as noted above (thank you, that was a duh moment on my part) 2) ran nmake:
      bdimp.c(5637) : warning C4996: 'strncpy' was declared deprecated C:\msvs8\VC\INCLUDE\string.h(156) : see declaration of 'strncp +y' Message: 'This function or variable may be unsafe. Consider us +ing strncp y_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See + online he lp for details.' Running Mkbootstrap for DBD::Sybase () C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 Sybase.b +s C:\Perl\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists('N +AME'=>\"DB D::Sybase\", 'DLBASE' => 'Sybase', 'DL_FUNCS' => { }, 'FUNCLIST' => [ +], 'IMPORT S' => { }, 'DL_VARS' => []);" link -out:blib\arch\auto\DBD\Sybase\Sybase.dll -LC:\sybase70/O +CS-15_0/li b -dll -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\li +b\CORE" - machine:x86 Sybase.obj dbdimp.obj C:\Perl\lib\CORE\perl58.lib C:\sy +base70\OCS -15_0\lib\libsybct.lib C:\sybase70\OCS-15_0\lib\libsybcs.lib C:\sybase +70\OCS-15_ 0\lib\libsybblk.lib C:\msvs8\VC\LIB\oldnames.lib C:\msvs8\VC\LIB\kerne +l32.lib C: \mssdk\Lib\user32.lib C:\mssdk\Lib\gdi32.lib C:\mssdk\Lib\winspool.lib + C:\mssdk\ Lib\comdlg32.lib C:\mssdk\Lib\advapi32.lib C:\mssdk\Lib\shell32.lib C: +\mssdk\Lib \ole32.lib C:\mssdk\Lib\oleaut32.lib C:\mssdk\Lib\netapi32.lib C:\mssd +k\Lib\uuid .lib C:\mssdk\Lib\ws2_32.lib C:\mssdk\Lib\mpr.lib C:\mssdk\Lib\winmm.l +ib C:\mssd k\Lib\version.lib C:\mssdk\Lib\odbc32.lib C:\mssdk\Lib\odbccp32.lib C: +\msvs8\VC\ LIB\msvcrt.lib -def:Sybase.def LINK : warning LNK4044: unrecognized option '/LC:\sybase70/OCS-15_0/li +b'; ignore d Creating library blib\arch\auto\DBD\Sybase\Sybase.lib and object bl +ib\arch\auto\DBD\Sybase\Sybase.exp C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 755 blib\arc +h\auto\DBD\Sybase\Sybase.dll C:\Perl\bin\perl.exe -MExtUtils::Command -e cp Sybase.bs blib\ +arch\auto\DBD\Sybase\Sybase.bs C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 blib\arc +h\auto\DBD\Sybase\Sybase.bs
      The only error I really see is the unrecognized option '/LC:....' error. In the makefile, this is what I see:
      LDDLFLAGS = -LC:\sybase70/OCS-15_0/lib -dll -nologo -nodefaultlib -deb +ug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -machine:x86
        Unfortunately I don't know much about Windows, and even less about the way MSVC works (specifying libraries, etc).

        Stupid question time.... is the SYBASE env. variable set correctly when you try to run your test ?

        Michael

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://649804]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2020-11-27 03:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?