public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: "Michael Olson" <olson@cs.odu.edu>
To: "Ed Bradford/Raleigh/IBM" <egb@us.ibm.com>
Cc: <cygwin@sourceware.cygnus.com>
Subject: RE: Linking in WSAGetLastError
Date: Wed, 27 Sep 2000 07:13:00 -0000	[thread overview]
Message-ID: <NDBBLDDPFLDCKGELIKKKEEILCAAA.olson@cs.odu.edu> (raw)
In-Reply-To: <OF0218AED7.F7BEE650-ON85256967.0048A37B@raleigh.ibm.com>

To link with a DLL (Like user32.dll) you need an import library which is
what -luser32
is linking your program to. Doc's on how to build dll's and import libraries
are here
http://sources.redhat.com/cygwin/cygwin-ug-net/dll.html

Is that what you were looking for?

-- Mike

----------------
Michael Olson
olson@cs.odu.edu
----------------

-----Original Message-----
From: cygwin-owner@sources.redhat.com
[ mailto:cygwin-owner@sources.redhat.com]On Behalf Of Ed
Bradford/Raleigh/IBM
Sent: Wednesday, September 27, 2000 9:43 AM
To: DJ Delorie
Cc: cygwin@sourceware.cygnus.com
Subject: Re: Linking in WSAGetLastError


I'm missing something here. If the CYGWIN libraries don't export functions
(aren't current with MS API's) then
you simply can't use the function. At least that's what I thought. After a
few simple experiments, I find that I might be wrong. Is there something
written somewhere that describes the relationship between
     gcc msg.c
and the Microsoft libraries? For instance, using gcc -v I see no references
to the mssdk libraries. Is that
because there isn't any? Here is my simple "msg.c" program:

     #include <windows.h>

     int main(int ac, char *av[])
     {
          MessageBox(NULL, "Messsage", "Title", MB_OK);
          return 0;
     }

It compiles with either
     cl msg.c user32.lib -o msg-cl.exe
or
     gcc msg.c -o msg-gcc
Both compile, link and execute properly. More precisely,

   gcc -c msg.c
   ld -Bdynamic /lib/crt0.o msg.o -L/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2
   -luser32 -lcygwin -lkernel32

produces a correctly working executable. Here, all the "-l" things refer to
/lib/libXXX.a modules. Substituting
//e/mssdk/lib/user32.lib for the "-luser" in the ld line, results in an
undefined reference to MessageBoxA
which is what I would expect.

As you can see, I am a bit confused. Any pointers to writeups on how all
the gcc libraries and
Windows libraries fit together would be greately appreciated. Also, I
wouldn't mind writing some of this
up once I understand it.

Thank you
Ed Bradford



Your Windows 2000 Arborist
T/L 589-4410; Outside: 1-919-993-4410
egb@us.ibm.com


DJ Delorie <dj@delorie.com>@sources.redhat.com on 09/26/2000 09:33:12 PM

Sent by:  cygwin-owner@sources.redhat.com


To:   olson@cs.odu.edu
cc:   cygwin@sourceware.cygnus.com
Subject:  Re: Linking in WSAGetLastError




> conf.o(.text+0x2c74):conf.c: undefined reference to `WSAGetLastError'

They don't export WGAGetLastError.  They export WSAGetLastError@0.
This means that you aren't including the proper headers (winsock.h),
and it's defaulting to cdecl instead of stdcall (WINAPI) calling
conventions.

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com




--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com

  parent reply	other threads:[~2000-09-27  7:13 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-09-27  6:43 Ed Bradford/Raleigh/IBM
2000-09-27  6:58 ` DJ Delorie
2000-09-27  7:13 ` Michael Olson [this message]
  -- strict thread matches above, loose matches on Subject: below --
2000-09-27  9:54 Ed Bradford/Raleigh/IBM
2000-09-27  9:59 ` DJ Delorie
2000-09-27  8:54 Ed Bradford/Raleigh/IBM
2000-09-27  9:00 ` DJ Delorie
2000-09-27 10:04 ` Michael Olson
2000-09-26 14:53 rlogin does not exit Corinna Vinschen
2000-09-26 18:26 ` Linking in WSAGetLastError Michael Olson
2000-09-26 18:33   ` DJ Delorie

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=NDBBLDDPFLDCKGELIKKKEEILCAAA.olson@cs.odu.edu \
    --to=olson@cs.odu.edu \
    --cc=cygwin@sourceware.cygnus.com \
    --cc=egb@us.ibm.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).