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
| [reply] [Watch: Dir/Any] [d/l] |
I have the same problem! Any another ideas??? Evandro (Free CMS in Perl)
| [reply] [Watch: Dir/Any] |
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. | [reply] [Watch: Dir/Any] [d/l] |
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
| [reply] [Watch: Dir/Any] [d/l] |