This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Mysterious g++ link problems
"Gerrit P. Haase" <gerrit@familiehaase.de> writes:
> 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.
I'm not using /usr/local/gcc. I assume you meant
/usr/local/gcc=3.4.4/bin/g++?
I'd like to try to "figure out why," but I don't know where to start
looking.
> Suggested solution: either uninstall your local build of gcc and use
> the 'official' Cygwin gcc build or uninstall the official release.
I'm happy to use the official one, but I'd still like to understand
what happened.
--
Dave Abrahams
Boost Consulting
www.boost-consulting.com
--
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/