delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/08/19/05:31:09

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
From: "Dave Korn" <dk AT artimi DOT com>
To: <cygwin AT cygwin DOT com>
Subject: RE: Problem linking with ODBC
Date: Thu, 19 Aug 2004 10:28:41 +0100
MIME-Version: 1.0
In-Reply-To: <loom.20040818T214320-21@post.gmane.org>
Message-ID: <NUTMEGyLyGqOs28evcM00000e49@NUTMEG.CAM.ARTIMI.COM>
X-OriginalArrivalTime: 19 Aug 2004 09:28:41.0484 (UTC) FILETIME=[EA5B84C0:01C485CE]

> -----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 AT mace /artimi> nm /lib/w32api/libodbc32.a  | grep SQLConnect
00000000 T _SQLConnectW AT 28
00000000 I __imp__SQLConnectW AT 28
00000000 T _SQLConnectA AT 28
00000000 I __imp__SQLConnectA AT 28
00000000 T _SQLConnect AT 28
00000000 I __imp__SQLConnect AT 28
dk AT 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 AT 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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019