This is the mail archive of the
cygwin@sourceware.cygnus.com
mailing list for the Cygwin project.
Re: Where are Reg* implemented?
- To: Wei Ku <weiku at UTKUX1 dot UTK dot EDU>
- Subject: Re: Where are Reg* implemented?
- From: Jason Zions <jazz at softway dot com>
- Date: Fri, 01 Aug 1997 08:44:02 -0600
- CC: gnu-win32 at cygnus dot com, Justin Hopkins <hop at elwood dot pionet dot net>
- Organization: Softway Systems Inc.
- References: <199708010304.XAA31283@solid.ssd.ornl.gov>
- Reply-To: jazz at softway dot com
> My impression ( an what I always do ) is to put the options before the
> files to be compiled or linked as following:
>
> g++ -o outfilename -O -L libpath -l lib file.c file.o ...
Usually won't work. *Most* options need to go up front; -O, -L, etc.
Library options (-l) *must* be specified in the *correct order* so that
resolution can be controlled. By listing a library, -lfoo, before any .o
files have been loaded, you're trying to resolve entrypoints from the
library before the loader has seen any unresolved names.
First list the .o files, then the libraries you want the loader to use
to resolve entrypoints, in the order you want it to try. If two
libraries both have a particular entrypoint, the first one the loader
sees (once it sees the unresolved name from another file) is the one it
loads, and it silently ignores the latter one (because the name has
already been resolved).
This is basic stuff, folks. Read a Unix system's "ld" man page.
Jason
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".