Subject: Re: libodbccp32.a
From: "Danny Smith" <[email-masked]>
To: [email-masked], [email-masked]
Cc: [email-masked]
Date: Wed, 09 Aug 2000 09:41:42 NZST

<SNIP>

>dllwrap --dllname ODBC.dll --driver-name gcc --dlltool dlltool
>--export-all-symbols --as as --output-def libODBC.def --output-lib 
>libODBC.a
>\
>-L/usr/local/lib ODBC.o dbdimp.o -lodbc32 -L/cygdrive/c/winnt/system32
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>-lodbccp32 /usr/local/lib/perl5/5.6.0/cygwin/CORE/libperl5_6_0.a -lodbc32
>dllwrap: no export definition file provided
>dllwrap: creating one, but that may not be what you want
>ODBC.o(.text+0x3800):ODBC.c: undefined reference to `SQLGetFunctions@12'
>ODBC.o(.text+0x39ce):ODBC.c: undefined reference to `SQLAllocEnv@4'
>ODBC.o(.text+0x3a5d):ODBC.c: undefined reference to `SQLDataSources@32'
<MORE OF SAME>

All the symbols are from odbc32.dll, but in odbc32.dll they are exported as 
aliases. This may be the problem:

The linker is trying to use /cygdrive/c/winnt/system32/odbc32.dll instead of 
/usr/lib/libodbc32.a  If so, the only thing visible in odbc32.dll are the 
aliased names, without trailing @n.   Try -v to see what libs are being 
linked in.

As I indicate earlier linking directly against dll only seems to work for 
__cdecl symbols, for *unaliased* __stdcall symbols, or for G++ symbols in 
all there mangled glory.

Regards
Danny

________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com

--
Want to unsubscribe from this list?
Send a message to [email-masked]