This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Build/Linker question again (g++)


Judd wrote:

The error I'm getting now is:
----------------------------
/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/libgcc.a(_chkstk.o)(.text+0x0):
multiple definition of `__alloca'

/usr/lib/libcygwin.a(d000085.o)(.text+0x0): first defined here

/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/libgcc.a(_eprintf.o)(.text+0x0):
multiple definition of `___eprintf'

/usr/lib/libcygwin.a(d000027.o)(.text+0x0): first defined here

---------------------------------

From the build command:

-------------------------

g++ -shared \
>  -nodefaultlibs \
>  -o libInventor.dll \
>  -Wl,--out-implib=libInventor.dll.a \
-Wl,--export-all-symbols \
>  -Wl,--enable-auto-import \
>  -Wl,--whole-archive \
libInventor.a \
>  -WL,--no-whole-archive \
>  -L/usr/lib \
>  -L/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3 \
>  -L/usr/X11R6/lib \
>  -L/usr/lib/w32api \
>  -L../libimage \
>  -L../libFL/src \
-ljpeg.dll -limage -lFL -lX11.dll -lfltk_gl.dll -lGLU.dll \
> -lGL.dll -liconv.dll -lfreetype.dll -lcygwin -lstdc++ \
> -lasprintf -lz -lkernel32 -lgcc

You don't need to add the .dll prefix, the linker should automatically pick up the .dll.a import lib if both, import lib and static archives are present.


-----------------------------

I'm using nodefaultlibs because I had a problem linking before where I was
getting lots of multiple definition errors from essentially the same
library.  Using nodefaultlibs and linking all the libs I need by hand has
fixed all those, but I have those last 2 multiple definition errors.  Is
there any way to link libcygwin and libgcc without getting multiple
definitions of ___eprintf and __alloca?  It seems bizarre that those 2 would
conflict.  Maybe there's a command line option that I need to be using in my
build command.

There is no option like nodefaultlibs:


$ ld --help | grep nodefaultlibs

Try -nostdlib instead.


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]