This is the mail archive of the
cygwin
mailing list for the Cygwin project.
RE: Problem linking with ODBC
- From: "Dave Korn" <dk at artimi dot com>
- To: <cygwin at cygwin dot com>
- Date: Thu, 19 Aug 2004 10:28:41 +0100
- Subject: RE: Problem linking with ODBC
> -----Original Message-----
> From: cygwin-owner On Behalf Of da
> Sent: 18 August 2004 20:48
> I'm getting undefined references when trying to link with
> libodbc32.a that comes with cygwin:
>
> ---
>
> Building target: libTest.so
> g++ -shared -o libTest.so testdb.o -lodbc32
> testdb.o(.text+0x40): In function `_Z3foov':
> /cygdrive/c/Projects/test/source/Debug/../testdb.cpp:7:
> undefined reference to
> `_SQLConnect'
> collect2: ld returned 1 exit status
> make: *** [libTest.so] Error 1
>
> ---
>
> Any idea why _SQLConnect is unresolved?
Here's how to find out: use nm to list the library contents and see what's
there.
dk@mace /artimi> nm /lib/w32api/libodbc32.a | grep SQLConnect
00000000 T _SQLConnectW@28
00000000 I __imp__SQLConnectW@28
00000000 T _SQLConnectA@28
00000000 I __imp__SQLConnectA@28
00000000 T _SQLConnect@28
00000000 I __imp__SQLConnect@28
dk@mace /artimi>
It seems it's not matching because the symbol is decorated. There's an ld
option to deal with this:
--enable-stdcall-fixup Link _sym to _sym@nn without warnings
To pass it through the g++ command line, you'll need to prefix it with
-Wl, so try it like this:
> g++ -Wl,--enable-stdcall-fixup -shared -o libTest.so testdb.o -lodbc32
cheers,
DaveK
--
Can't think of a witty .sigline today....
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/