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:
multiple definition of `__alloca'

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

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:
Problem reports:

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