Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Re4: DBD::Sybase with Sybase 15.0

by mpeppler (Vicar)
on Nov 26, 2007 at 13:26 UTC ( [id://652977]=note: print w/replies, xml ) Need Help??


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

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

Replies are listed 'Best First'.
Re^2: Re4: DBD::Sybase with Sybase 15.0
by vcdmb (Initiate) on Dec 13, 2007 at 16:08 UTC
    I know zip about MSVC, unfortunately. But that was the tips I found for compiling this on Windows. Yes, SYBASE is set along with

    SYBASE=C:\sybase70 SYBASE_JRE=C:\sybase70\Shared\Sun\jre142 SYBASE_OCS=OCS-15_0 SYBASE_UA=C:\sybase70\ua INCLUDE=C:\sybase70\OCS-15_0\include LIB=C:\sybase70\OCS-15_0\lib

    Edit: g0n - code tags

      I have the same problem! Any another ideas??? Evandro (Free CMS in Perl)

        Hello, I was unable to get DBD::Sybase 1.09 to compile against Syb 15.5.5 on Windows XP, with MSVC 2008 Epxress; it was borking on the /LC:\Sybase/OCS-15_0/lib bit. After messing around with Makefile.PL and the Makefile, I eventually stumbled on adding this to the LDLOADLIBS = line:

        "C:\Sybase\OCS-15_0\lib\libsybct.lib" "C:\Sybase\OCS-15_0\lib\libsybbl +k.lib" "C:\Sybase\OCS-15_0\lib\libsybcs.lib" "C:\Sybase\OCS-15_0\lib\ +libsybdb.lib"

        Obviously, that should be changed for your install directory if necessary. I don't know whether this is a known MakeMaker/MSVC problem, but hopefully this might be helpful to anyone else whose employer makes them use Windows.

Re^2: Re4: DBD::Sybase with Sybase 15.0
by goga (Initiate) on Apr 08, 2008 at 00:18 UTC
    Hi,

    It took me some seven days to compile and successfully link DBI::Sybase1.08 against Sybase OCS15 on Mingw / Windows Vista. I would surely share my trick, it is really difficult to link sybase libraries using Mingw. If I link on VC8, it is linked to msvcr80.dll. It fails to load because of windows side by side dll installation.

    So I tried to link using free Mingw, it links with msvcrt.dll. Downloaded mingw, binutils, unix utils (unixutils.sourceforge.net) and nmake from VC8\bin.


    I followed the articles at:
    http://mingw.org/mingwfaq.shtml#faq-msvcdll
    http://sapdb.2scale.net/maxdb-wiki/MS_C++_Toolkit
    http://www.geocities.com/yongweiwu/stdcall.htm

    And created my own libraries out of %sybase%\dll\*

    Step1: Create the following sed file, call it exp.sed

    / \t*ordinal hint/,/^ \t*Summary/{
    /^ \t\+0-9\+/{
    s/^ \t\+0-9\+ \t\+0-9A-Fa-f\+ \t\+0-9A-Fa-f\+ \t\+\(.*\)/\1/p
    }
    }


    Step2: Create following batch file, call it genlib.bat
    echo LIBRARY %1.dll > %1.def
    echo EXPORTS >> %1.def
    link -dump -exports %1.dll | sed -nf c:\temp\DBD-Sybase-1.08\exports.sed >> %1.def
    dlltool -U -d %1.def -l %1.a


    Step3: go to %sybase%\dll and run the following loop (type it on dos prompt and press enter)

    for /f %i in ('dir /b *.dll') do a %~ni & move /Y %~ni.a ..\lib\ & del %~ni.def
    Step4:
    Go to DBD-Sybase-1.08 directory, edit makefile.pl, change libct to libsybct.a etc .. and run nmake it compiles and links correctly, but all the tests fail!!!

    --------------------------------------------------------
    ERROR:
    # Tried to use 'DBD::Sybase'.
    # Error: Can't load 'C:\temp\DBD-Sybase-1.08\blib\arch/auto/DBD/Sybase/Sybase.dll' for module DBD::Sybase: load_file:The specified procedure could not be found at C:/Perl/lib/DynaLoader.pm line 201.
    --------------------------------------------------------

    So I tried again to debug:
    Went to "DBD-Sybase-1.08\blib\arch\auto\DBD\Sybase"
    and issued "link -dump -exports Sybase.dll"

    The following dump clearly shows there aren't any methods exported. It seems the __declspec(export) is not evaluated by some preprocessor macro during compilation.


    Dump of file Sybase.dll File Type: DLL Section contains the following exports for dll.exp.dll 00000000 characteristics 47FAA9E4 time date stamp Tue Apr 08 00:10:28 2008 0.00 version 1 ordinal base 2 number of functions 2 number of names ordinal hint RVA name 2 0 00006130 _boot_DBD__Sybase 1 1 00006130 boot_DBD__Sybase Summary 1000 .bss 1000 .data 1000 .edata 2000 .idata 5000 .rdata 1000 .reloc 16000 .text


    Michael could you please help me, here?


    Thanks,
    Sanjit

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2024-03-29 08:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found