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: Suppressing linking errors with GCC/G++/ld under Cygwin

Robert McLeay wrote:


(Sorry if this is OT, I'm trying to find out the Cygwin equivalent of
a GCC flag from other platforms.)

I'm trying to compile a library for Qu-Prolog that will be linked at
run-time with program internals. As it will be linked at run time, I
would like to suppress all "undefined reference" errors somewhat
similarly to using "-undefined suppress" under Mac OS X.

I'm using Cygwin, and here is the error message and the g++ line that I
am using.

rob@ches-laptop /cygdrive/c/rand2

$ g++ -shared -Wl,-soname,sym001476 $RAND2_LIB/rand.o -lc -o sym001476

../rand.o(.text+0x24f): In function `iunif_interface':
   /    cygdrive/c/rand2/ undefined reference to
`Thread::unify(Object*, Object*, bool)'
../rand.o(.text+0x2ce): In function `iunif_interface':
   /    cygdrive/c/qp-cygwin-withicm/src/heap_qp.h:278: undefined reference to
collect2: ld returned 1 exit status

Is there any way to suppress these errors and let it compile under
Cygwin the same way as using "g++ -flat_namespace -undefined suppress
-bundle" would under Mac OS X?

It is not possible to link a shared module / DLL or executable with undefined references on Windows / Cygwin and so there is no switch to enable this. Symbols must resolve at link time. If you need symbols in a shared library then create and link against an importlib, if symbols from an executable are needed then you try to figure out how to create the executable so it exports these symbols, then create an import library for these symbols and link against this importlib so the linker is able to resolve the references at linktime.


Unsubscribe info:
Problem reports:

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