[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc
Subject:    Re: Latest snapshot won't build with --enable-libstdcxx-v3
From:       Benjamin Scherrey <scherrey () switchco ! com>
Date:       2000-09-21 18:51:45
[Download RAW message or body]

Possible Repost - This message didn't seem to make it to the gcc list.

Attached is the source/compiler output. Apparently it finds all the
libraries its looking for
but not the required symbols. Dunno why that is.

    thanx & later,

        Ben Scherrey

Benjamin Kosnik wrote:

> On Wed, 20 Sep 2000, Benjamin Scherrey wrote:
>
> > That got the compiler to build and install but there are still problems. It appears that
> > libstdc++ v3 has been installed correctly in /usr/local/lib. I can compile my test code
> > but the link fails with the stream stuff. My test code exercises <string>, <sstream>,
> > and <iostream>.
>
> what's the link failure?
>
> what's the output of gcc -v -H?
>
> -benjamin
["assign.cpp" (text/plain)]

//
//	Assign.cpp	-	Tests implementation of assignment operator.
//

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

class Test
{

public:

	Test( const int t = 0 ) : i(t) 
	{
		cout << "Test default constructor." << endl;
	}

	Test( const Test& t )
	{
		cout << "Test copy constructor." << endl;
		i = t.i;
	}

	Test& operator=( const Test& t )
	{
		cout << "Test assignment operator." << endl;
		i = t.i;
		return *this;
	}

	string print( void ) const
	{
	    stringstream s;
	    s << "i = " << i;
/*
        char buf[10];
        itoa( i, buf, 10 );
		string s = "i = ";
		s += buf;
*/		
		return s.str();
	}

private:

	int i;
	
};

class Derived : public Test
{

public:

	Derived( int t1 = 0, int t2 = 0 ) : Test( t1 ), j( t2 )
	{
		cout << "Derived default constructor." << endl;
	}

	Derived( const Derived& d ) : Test( d )
	{
		cout << "Derived copy constructor." << endl;
		j = d.j;
	}

	Derived& operator=( const Derived& d )
	{
		cout << "Derived assignment operator." << endl;
		j = d.j;
        Test::operator=( d );
        return *this;
	}
	
	string print( void ) const
	{

/*
        char buf[ 10 ];
        itoa( j, buf, 10 );
		string s = "j = ";
		s += buf;
		s += " - ";
		s += Test::print();
*/
        stringstream s;
	    s << "j = " << j << " - " << Test::print();		
		return s.str();
	}

private:

	int j;
};

int main( void )
{
	Derived D1( 5,5 );
	Derived D2( 7,7 );

	cout << "D1 = " << D1.print() << endl;
	cout << "D2 = " << D2.print() << endl;

	cout << "D1 = D2" << endl;
	D1 = D2;

	cout << "D1 = " << D1.print() << endl;
	cout << "D2 = " << D2.print() << endl;

	return 0;
}

// eof( Assign.cpp )


["make.out" (text/plain)]

/tmp/ccuLYFdv.o: In function `main':
/tmp/ccuLYFdv.o(.text+0x54): undefined reference to `std::cout'
/tmp/ccuLYFdv.o(.text+0x59): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> > & std::operator<<<std::char_traits<char> \
                >(std::basic_ostream<char, std::char_traits<char> > &, char const *)'
/tmp/ccuLYFdv.o(.text+0x64): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> > & std::operator<<<char, std::char_traits<char>, \
std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> > &, \
                std::basic_string<char, std::char_traits<char>, std::allocator<char> \
>                 const &)'
/tmp/ccuLYFdv.o(.text+0x6f): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> \
>                 &(*)(std::basic_ostream<char, std::char_traits<char> > &))'
/tmp/ccuLYFdv.o(.text+0xaf): undefined reference to `std::cout'
/tmp/ccuLYFdv.o(.text+0xb4): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> > & std::operator<<<std::char_traits<char> \
                >(std::basic_ostream<char, std::char_traits<char> > &, char const *)'
/tmp/ccuLYFdv.o(.text+0xbf): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> > & std::operator<<<char, std::char_traits<char>, \
std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> > &, \
                std::basic_string<char, std::char_traits<char>, std::allocator<char> \
>                 const &)'
/tmp/ccuLYFdv.o(.text+0xca): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> \
>                 &(*)(std::basic_ostream<char, std::char_traits<char> > &))'
/tmp/ccuLYFdv.o(.text+0xf3): undefined reference to `std::cout'
/tmp/ccuLYFdv.o(.text+0xf8): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> > & std::operator<<<std::char_traits<char> \
                >(std::basic_ostream<char, std::char_traits<char> > &, char const *)'
/tmp/ccuLYFdv.o(.text+0x103): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> \
>                 &(*)(std::basic_ostream<char, std::char_traits<char> > &))'
/tmp/ccuLYFdv.o(.text+0x145): undefined reference to `std::cout'
/tmp/ccuLYFdv.o(.text+0x14a): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> > & std::operator<<<std::char_traits<char> \
                >(std::basic_ostream<char, std::char_traits<char> > &, char const *)'
/tmp/ccuLYFdv.o(.text+0x155): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> > & std::operator<<<char, std::char_traits<char>, \
std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> > &, \
                std::basic_string<char, std::char_traits<char>, std::allocator<char> \
>                 const &)'
/tmp/ccuLYFdv.o(.text+0x160): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> \
>                 &(*)(std::basic_ostream<char, std::char_traits<char> > &))'
/tmp/ccuLYFdv.o(.text+0x1a0): undefined reference to `std::cout'
/tmp/ccuLYFdv.o(.text+0x1a5): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> > & std::operator<<<std::char_traits<char> \
                >(std::basic_ostream<char, std::char_traits<char> > &, char const *)'
/tmp/ccuLYFdv.o(.text+0x1b0): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> > & std::operator<<<char, std::char_traits<char>, \
std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> > &, \
                std::basic_string<char, std::char_traits<char>, std::allocator<char> \
>                 const &)'
/tmp/ccuLYFdv.o(.text+0x1bb): undefined reference to `std::basic_ostream<char, \
std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> \
>                 &(*)(std::basic_ostream<char, std::char_traits<char> > &))'
/tmp/ccuLYFdv.o: In function `__static_initialization_and_destruction_0':
/tmp/ccuLYFdv.o(.text+0x28e): undefined reference to \
                `std::ios_base::Init::Init(void)'
/tmp/ccuLYFdv.o(.text+0x2af): undefined reference to \
                `std::ios_base::Init::~Init(void)'
/tmp/ccuLYFdv.o: In function `std::basic_ostream<char, std::char_traits<char> > & \
std::endl<char, std::char_traits<char> >(std::basic_ostream<char, \
                std::char_traits<char> > &)':
/tmp/ccuLYFdv.o(.std::basic_ostream<char, std::char_traits<char> > & \
std::gnu.linkonce.t.endl<char, std::char_traits<char> >(std::basic_ostream<char, \
std::char_traits<char> > &)+0x14): undefined reference to `std::basic_ios<char, \
                std::char_traits<char> >::widen(char) const'
/tmp/ccuLYFdv.o(.std::basic_ostream<char, std::char_traits<char> > & \
std::gnu.linkonce.t.endl<char, std::char_traits<char> >(std::basic_ostream<char, \
std::char_traits<char> > &)+0x25): undefined reference to `std::basic_ostream<char, \
                std::char_traits<char> >::put(char)'
/tmp/ccuLYFdv.o: In function `std::basic_ostream<char, std::char_traits<char> > & \
std::flush<char, std::char_traits<char> >(std::basic_ostream<char, \
                std::char_traits<char> > &)':
/tmp/ccuLYFdv.o(.std::basic_ostream<char, std::char_traits<char> > & \
std::gnu.linkonce.t.flush<char, std::char_traits<char> >(std::basic_ostream<char, \
std::char_traits<char> > &)+0xd): undefined reference to `std::basic_ostream<char, \
                std::char_traits<char> >::flush(void)'
/tmp/ccuLYFdv.o: In function `Derived::Derived(int, int)':
/tmp/ccuLYFdv.o(.Derived::gnu.linkonce.t.(int, int)+0x2f): undefined reference to \
                `std::cout'
/tmp/ccuLYFdv.o(.Derived::gnu.linkonce.t.(int, int)+0x34): undefined reference to \
`std::basic_ostream<char, std::char_traits<char> > & \
std::operator<<<std::char_traits<char> >(std::basic_ostream<char, \
                std::char_traits<char> > &, char const *)'
/tmp/ccuLYFdv.o(.Derived::gnu.linkonce.t.(int, int)+0x3f): undefined reference to \
`std::basic_ostream<char, std::char_traits<char> \
>::operator<<(std::basic_ostream<char, std::char_traits<char> > \
> &(*)(std::basic_ostream<char, std::char_traits<char> > &))'
/tmp/ccuLYFdv.o: In function `Derived::operator=(Derived const &)':
/tmp/ccuLYFdv.o(.Derived::gnu.linkonce.t.__as(Derived const &)+0x1c): undefined \
                reference to `std::cout'
/tmp/ccuLYFdv.o(.Derived::gnu.linkonce.t.__as(Derived const &)+0x21): undefined \
reference to `std::basic_ostream<char, std::char_traits<char> > & \
std::operator<<<std::char_traits<char> >(std::basic_ostream<char, \
                std::char_traits<char> > &, char const *)'
/tmp/ccuLYFdv.o(.Derived::gnu.linkonce.t.__as(Derived const &)+0x2c): undefined \
reference to `std::basic_ostream<char, std::char_traits<char> \
>::operator<<(std::basic_ostream<char, std::char_traits<char> > \
> &(*)(std::basic_ostream<char, std::char_traits<char> > &))'
/tmp/ccuLYFdv.o: In function `Derived::print(void) const':
/tmp/ccuLYFdv.o(.Derived::gnu.linkonce.t.print(void) const+0x6f): undefined reference \
to `std::basic_ostream<char, std::char_traits<char> > & \
std::operator<<<std::char_traits<char> >(std::basic_ostream<char, \
                std::char_traits<char> > &, char const *)'
/tmp/ccuLYFdv.o(.Derived::gnu.linkonce.t.print(void) const+0x85): undefined reference \
to `std::basic_ostream<char, std::char_traits<char> > & \
std::operator<<<std::char_traits<char> >(std::basic_ostream<char, \
                std::char_traits<char> > &, char const *)'
/tmp/ccuLYFdv.o(.Derived::gnu.linkonce.t.print(void) const+0x90): undefined reference \
to `std::basic_ostream<char, std::char_traits<char> > & std::operator<<<char, \
std::char_traits<char>, std::allocator<char> >(std::basic_ostream<char, \
std::char_traits<char> > &, std::basic_string<char, std::char_traits<char>, \
                std::allocator<char> > const &)'
/tmp/ccuLYFdv.o: In function `Test::Test(int)':
/tmp/ccuLYFdv.o(.Test::gnu.linkonce.t.(int)+0x1f): undefined reference to `std::cout'
/tmp/ccuLYFdv.o(.Test::gnu.linkonce.t.(int)+0x24): undefined reference to \
`std::basic_ostream<char, std::char_traits<char> > & \
std::operator<<<std::char_traits<char> >(std::basic_ostream<char, \
                std::char_traits<char> > &, char const *)'
/tmp/ccuLYFdv.o(.Test::gnu.linkonce.t.(int)+0x2f): undefined reference to \
`std::basic_ostream<char, std::char_traits<char> \
>::operator<<(std::basic_ostream<char, std::char_traits<char> > \
> &(*)(std::basic_ostream<char, std::char_traits<char> > &))'
/tmp/ccuLYFdv.o: In function `Test::operator=(Test const &)':
/tmp/ccuLYFdv.o(.Test::gnu.linkonce.t.__as(Test const &)+0x1c): undefined reference \
                to `std::cout'
/tmp/ccuLYFdv.o(.Test::gnu.linkonce.t.__as(Test const &)+0x21): undefined reference \
to `std::basic_ostream<char, std::char_traits<char> > & \
std::operator<<<std::char_traits<char> >(std::basic_ostream<char, \
                std::char_traits<char> > &, char const *)'
/tmp/ccuLYFdv.o(.Test::gnu.linkonce.t.__as(Test const &)+0x2c): undefined reference \
to `std::basic_ostream<char, std::char_traits<char> \
>::operator<<(std::basic_ostream<char, std::char_traits<char> > \
> &(*)(std::basic_ostream<char, std::char_traits<char> > &))'
/tmp/ccuLYFdv.o: In function `Test::print(void) const':
/tmp/ccuLYFdv.o(.Test::gnu.linkonce.t.print(void) const+0x4b): undefined reference to \
`std::basic_ostream<char, std::char_traits<char> > & \
std::operator<<<std::char_traits<char> >(std::basic_ostream<char, \
                std::char_traits<char> > &, char const *)'
/tmp/ccuLYFdv.o: In function `std::basic_ostream<char, std::char_traits<char> \
                >::operator<<(int)':
/tmp/ccuLYFdv.o(.std::basic_ostream<char, std::char_traits<char> \
>::gnu.linkonce.t.__ls(int)+0x60): undefined reference to `std::basic_ostream<char, \
> std::char_traits<char> >::operator<<(unsigned long)'
/tmp/ccuLYFdv.o(.std::basic_ostream<char, std::char_traits<char> \
>::gnu.linkonce.t.__ls(int)+0x7a): undefined reference to `std::basic_ostream<char, \
> std::char_traits<char> >::operator<<(long)'
/tmp/ccuLYFdv.o: In function `std::basic_ios<char, std::char_traits<char> \
                >::basic_ios(void)':
/tmp/ccuLYFdv.o(.std::basic_ios<char, std::char_traits<char> \
                >::gnu.linkonce.t.(void)+0xf): undefined reference to \
                `std::ios_base::ios_base(void)'
/tmp/ccuLYFdv.o: In function `std::basic_ios<char, std::char_traits<char> \
                >::~basic_ios(void)':
/tmp/ccuLYFdv.o(.gnu.linkonce.t._._Q23stdt9basic_ios2ZcZQ23stdt11char_traits1Zc+0x13): \
                undefined reference to `std::ios_base::~ios_base(void)'
/tmp/ccuLYFdv.o: In function `std::basic_streambuf<char, std::char_traits<char> \
                >::basic_streambuf(void)':
/tmp/ccuLYFdv.o(.std::basic_streambuf<char, std::char_traits<char> \
>::gnu.linkonce.t.(void)+0xdc): undefined reference to `std::ctype<char> const & \
> std::use_facet<std::ctype<char> >(std::locale const &)'
/tmp/ccuLYFdv.o: In function `std::basic_istream<char, std::char_traits<char> \
                >::basic_istream(std::basic_streambuf<char, std::char_traits<char> > \
                *)':
/tmp/ccuLYFdv.o(.std::basic_istream<char, std::char_traits<char> \
>::gnu.linkonce.t.(std::basic_streambuf<char, std::char_traits<char> > *)+0x4a): \
> undefined reference to `std::basic_ios<char, std::char_traits<char> \
> >::init(std::basic_streambuf<char, std::char_traits<char> > *)'
/tmp/ccuLYFdv.o: In function `std::basic_ostream<char, std::char_traits<char> \
                >::basic_ostream(std::basic_streambuf<char, std::char_traits<char> > \
                *)':
/tmp/ccuLYFdv.o(.std::basic_ostream<char, std::char_traits<char> \
>::gnu.linkonce.t.(std::basic_streambuf<char, std::char_traits<char> > *)+0x4a): \
> undefined reference to `std::basic_ios<char, std::char_traits<char> \
> >::init(std::basic_streambuf<char, std::char_traits<char> > *)'
/tmp/ccuLYFdv.o(.gnu.linkonce.d.__vt_Q23stdt15basic_stringbuf3ZcZQ23stdt11char_traits1ZcZQ23stdt9allocator1Zc+0x14): \
undefined reference to `std::basic_stringbuf<char, std::char_traits<char>, \
                std::allocator<char> >::seekoff(long long, std::_Ios_Seekdir, \
                std::_Ios_Openmode)'
/tmp/ccuLYFdv.o(.gnu.linkonce.d.__vt_Q23stdt15basic_stringbuf3ZcZQ23stdt11char_traits1ZcZQ23stdt9allocator1Zc+0x18): \
undefined reference to `std::basic_stringbuf<char, std::char_traits<char>, \
                std::allocator<char> >::seekpos(std::fpos<mbstate_t>, \
                std::_Ios_Openmode)'
/tmp/ccuLYFdv.o(.gnu.linkonce.d.__vt_Q23stdt15basic_stringbuf3ZcZQ23stdt11char_traits1ZcZQ23stdt9allocator1Zc+0x24): \
undefined reference to `std::basic_streambuf<char, std::char_traits<char> \
                >::xsgetn(char *, int)'
/tmp/ccuLYFdv.o(.gnu.linkonce.d.__vt_Q23stdt15basic_stringbuf3ZcZQ23stdt11char_traits1ZcZQ23stdt9allocator1Zc+0x30): \
undefined reference to `std::basic_stringbuf<char, std::char_traits<char>, \
                std::allocator<char> >::pbackfail(unsigned int)'
/tmp/ccuLYFdv.o(.gnu.linkonce.d.__vt_Q23stdt15basic_stringbuf3ZcZQ23stdt11char_traits1ZcZQ23stdt9allocator1Zc+0x34): \
undefined reference to `std::basic_streambuf<char, std::char_traits<char> \
                >::xsputn(char const *, int)'
/tmp/ccuLYFdv.o(.gnu.linkonce.d.__vt_Q23stdt15basic_stringbuf3ZcZQ23stdt11char_traits1ZcZQ23stdt9allocator1Zc+0x38): \
undefined reference to `std::basic_stringbuf<char, std::char_traits<char>, \
                std::allocator<char> >::overflow(unsigned int)'
/tmp/ccuLYFdv.o(.gnu.linkonce.d.__vt_Q23stdt15basic_streambuf2ZcZQ23stdt11char_traits1Zc+0x24): \
undefined reference to `std::basic_streambuf<char, std::char_traits<char> \
                >::xsgetn(char *, int)'
/tmp/ccuLYFdv.o(.gnu.linkonce.d.__vt_Q23stdt15basic_streambuf2ZcZQ23stdt11char_traits1Zc+0x34): \
undefined reference to `std::basic_streambuf<char, std::char_traits<char> \
                >::xsputn(char const *, int)'
/tmp/ccuLYFdv.o: In function `std::locale::locale(void)':
/tmp/ccuLYFdv.o(.std::locale::gnu.linkonce.t.(void)+0x10): undefined reference to \
                `std::locale::_S_global'
/tmp/ccuLYFdv.o: In function `std::basic_string<char, std::char_traits<char>, \
                std::allocator<char> >::_Rep::_S_create(unsigned int, \
                std::allocator<char> const &)':
/tmp/ccuLYFdv.o(.std::basic_string<char, std::char_traits<char>, std::allocator<char> \
>::_Rep::gnu.linkonce.t._S_create(unsigned int, std::allocator<char> const &)+0x1b): \
> undefined reference to `std::__length_error(char const *)'
/tmp/ccuLYFdv.o: In function `std::basic_streambuf<char, std::char_traits<char> \
                >::imbue(std::locale const &)':
/tmp/ccuLYFdv.o(.std::basic_streambuf<char, std::char_traits<char> \
>::gnu.linkonce.t.imbue(std::locale const &)+0x36): undefined reference to \
> `std::locale::operator=(std::locale const &)'
/tmp/ccuLYFdv.o(.std::basic_streambuf<char, std::char_traits<char> \
>::gnu.linkonce.t.imbue(std::locale const &)+0x48): undefined reference to \
> `std::ctype<char> const & std::use_facet<std::ctype<char> >(std::locale const &)'
/tmp/ccuLYFdv.o: In function `std::locale::operator!=(std::locale const &) const':
/tmp/ccuLYFdv.o(.std::locale::gnu.linkonce.t.__ne(std::locale const &) const+0x12): \
                undefined reference to `std::locale::operator==(std::locale const &) \
                const'
/tmp/ccuLYFdv.o: In function `std::locale::_S_initialize(void)':
/tmp/ccuLYFdv.o(.std::locale::gnu.linkonce.t._S_initialize(void)+0x8): undefined \
                reference to `std::locale::_S_classic'
/tmp/ccuLYFdv.o(.std::locale::gnu.linkonce.t._S_initialize(void)+0x10): undefined \
                reference to `std::locale::classic(void)'
/tmp/ccuLYFdv.o: In function `std::locale::_Impl::_M_remove_reference(void)':
/tmp/ccuLYFdv.o(.std::locale::_Impl::gnu.linkonce.t._M_remove_reference(void)+0x22): \
                undefined reference to `std::locale::_Impl::~_Impl(void)'
collect2: ld returned 1 exit status
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.96/specs
gcc version 2.96 20000920 (experimental)



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic