Mysterious g++ link problems

Gerrit P. Haase gerrit@familiehaase.de
Wed Jul 13 14:08:00 GMT 2005


David Abrahams wrote:

> Here are the symptoms.
> 
>     "/usr/local/gcc-3.4.4/bin/g++.exe"   -Wall -ftemplate-depth-100 -O0 -fno-inline -g  -DBOOST_ALL_NO_LIB=1  -I"..\..\.."  -c -o "..\..\..\bin.v2\libs\parameter\test\sfinae.test\gcc-3.4.4\debug\sfinae.o"  "sfinae.cpp"  
> 
>     "/usr/local/gcc-3.4.4/bin/g++.exe"     -o "..\..\..\bin.v2\libs\parameter\test\sfinae.test\gcc-3.4.4\debug\sfinae.exe"  "..\..\..\bin.v2\libs\parameter\test\sfinae.test\gcc-3.4.4\debug\sfinae.o"     -g  
> 
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_terminate'
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_terminate'
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_unexpected'
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_terminate'
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_terminate'
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_unexpected'
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_throw.o):: undefined reference to `___w32_sharedptr_unexpected'
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_throw.o):: undefined reference to `___w32_sharedptr_terminate'
> collect2: ld returned 1 exit status
> 
> This compiler was configured built and installed by me with
> --prefix=/usr/local/gcc-3.4.4 and has worked flawlessly up 'till now
> (and still works fine on other programs).
> 
> Somewhat strangely, 
> 
>   > cygcheck -c gcc
>   Cygwin Package Information
>   Package              Version        Status
>   gcc                  3.4.4-1        OK
> 
> I think until recently /bin/gcc referred to gcc-3.3.3 on my system,
> but I guess a recent use of the Cygwin setup program updated it to
> 3.4.4.  Everything works fine if I use /bin/g++, so I guess I can just
> throw out the contents of /usr/local/gcc-3.4.4, but this is still a
> bit disturbing.

You are using the wrong libstdc++.a runtime.  Try to figure out why
/usr/local/gcc is using /usr/lig/gcc runtime instead of your own 
/usr/local/lib/gcc runtime.

Suggested solution: either uninstall your local build of gcc and use
the 'official' Cygwin gcc build or uninstall the official release.


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/



More information about the Cygwin mailing list