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