Shared Libraries

Steve Jorgensen
Tue Nov 30 23:39:00 GMT 1999

> I've been told that shared libraries under unix can be built with unresolved
> externals. Thus, if I were to build a shared library with gcc under a
> unix/cygwin system, I would not need a stub library file containing the
> routines that I call within my library.

> The vendor have me a header file and a Win32 library file (.lib) and nothing
> else. The vendor states that under UNIX, no lib is needed. I can't figure
> out how to correctly link my shared library as gcc under cygwin still
> returns an "unresolved reference error".

> I have a vendor-provided header (vendor.h) defining some structures and
> functions. I compile my program like so:

> 	gcc -c my_module.c -o my_module.o
> 	gcc -shared -o my_module.o

> I then get an "unresolved reference" error for each function defined in
> vendor.h that I call in my_module.c.

> Thanks (in advance) a MILLION for any help!

	Under windows, all shared libraries need ALL symbols resolved
	at link time, so you'll need to link in the .lib you got
	from you're vender.  Also, I don't think cygwin support
	traditional unix .so shared libraries.  You have to create DLL's,
	which have a magic (curse?) all their own.  They are considerably
	harder to create than Unix shared libraries, and have some
	extremely annoying limitations.  Poke around on for more information
	on creating DLL's.  The cygwin mailing list archives should
	have info too.. You're looking for information on DLL's, dllwrap,
	and dlltool.


Steven Jorgensen
Khoral Research Inc.          | PHONE: (505) 837-6500
6200 Uptown Blvd, Suite 200   | FAX:   (505) 881-3842
Albuquerque, NM 87110         | URL:

Want to unsubscribe from this list?
Send a message to

More information about the Cygwin mailing list