From: "Gerrit P. Haase" <gerrit@familiehaase.de>
To: cygwin <cygwin@cygwin.com>
Subject: undefined reference to `_CAPI_INSTALLED@0', why?
Date: Thu, 30 Jun 2005 21:02:00 -0000 [thread overview]
Message-ID: <42C45145.4010202@familiehaase.de> (raw)
Hello All,
I'm sure that this is covered somewhere, however I cannot find it
currently;)
Ok, I try to build a Cygwin application that requires CAPI functions
which are installed with the drivers for an ISDN card, the DLL is named
capi2032.dll, I have an import library which comes from the manufacturer
AVM but this contains symbols not included in the DLL or elsewhere.
In the .lib library are these symbols:
$ nm capi2032.lib | grep ' T '
00000000 T _CAPI_GET_MANUFACTURER@4
00000000 T _CAPI_GET_MESSAGE@8
00000000 T _CAPI_GET_PROFILE@8
00000000 T _CAPI_GET_SERIAL_NUMBER@4
00000000 T _CAPI_GET_VERSION@16
00000000 T _CAPI_INSTALLED@0
00000000 T _CAPI_MANUFACTURER@20
00000000 T _CAPI_PUT_MESSAGE@8
00000000 T _CAPI_REGISTER@20
00000000 T _CAPI_RELEASE@4
00000000 T _CAPI_WAIT_FOR_SIGNAL@4
00000000 T _TASK_REGISTER@12
00000000 T _TASK_RELEASE@4
in the import library I created are these symbols:
$ nm libcapi2032.dll.a | grep ' T '
00000000 T _TASK_RELEASE
00000000 T _TASK_REGISTER
00000000 T _CAPI_WAIT_FOR_SIGNAL
00000000 T _CAPI_SET_SIGNAL_FOR_16BIT
00000000 T _CAPI_RELEASE
00000000 T _CAPI_REGISTER
00000000 T _CAPI_PUT_MESSAGE
00000000 T _CAPI_MANUFACTURER
00000000 T _CAPI_INSTALLED
00000000 T _CAPI_GET_VERSION
00000000 T _CAPI_GET_SERIAL_NUMBER
00000000 T _CAPI_GET_PROFILE
00000000 T _CAPI_GET_MESSAGE_FOR_16BIT
00000000 T _CAPI_GET_MESSAGE
00000000 T _CAPI_GET_MANUFACTURER
Now linking against my import library gives me this errors:
Creating library file: .libs/libSimpleCapi.dll.a
.libs/capi20.o: In function `CAPI20_ISINSTALLED':
/p/ftproot/pub/asterisk/caiviar-0.3.5/src/capi20.c:68: undefined
reference to `_CAPI_INSTALLED@0'
[...]
Where does the @0 in capi20.o: _CAPI_INSTALLED@0 came from?
I see in the source:
extern DWORD APIENTRY CAPI_INSTALLED (void);
unsigned CAPI20_ISINSTALLED (void) {
#if defined(CYGWIN) || defined(WIN32)
return (unsigned)CAPI_INSTALLED () == 0;
#elif defined(LINUX)
return capi20_isinstalled() == CapiNoError;
#endif
So why does the compiler creats a reference to _CAPI_INSTALLED@0 or
is it the linker who wants to resolve CAPI_INSTALLED with @0 attached.
Sure, I could edit my .def file and create an import library that
contains the symbol names as expected by the linker, however I want
to know why this happens.
Is the docu around which explains it or can somebody who knows what
happens here tell me, please?
Gerrit
--
=^..^=
--
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/
next reply other threads:[~2005-06-30 20:08 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-30 21:02 Gerrit P. Haase [this message]
2005-06-30 21:29 ` Gerrit P. Haase
2005-07-01 9:46 ` Dave Korn
[not found] ` <42C52EA6.5090300@familiehaase.de>
2005-07-01 12:14 ` Gerrit P. Haase
2005-07-16 1:00 ` Gerrit P. Haase
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42C45145.4010202@familiehaase.de \
--to=gerrit@familiehaase.de \
--cc=cygwin@cygwin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).