string class revisited

Jim Peterson jspeter@roanoke.infi.net
Thu Dec 4 18:34:00 GMT 1997


Hi,

  I'm sorry.  My previous post referred to a program which included <iostream>.
  This is merely a forwarding header of the same flavor as, for example,
  /usr/include/g++/cassert.  Suffice it to say, a slightly modified input as
  follows:

cat - > t.cc << EOF
#include <string>
#include <iostream.h>
int main()
{
  string msg="Hello, world!";
  cout << msg << endl;
  return 0;
}
EOF
g++ -H -v -o t t.cc

  responds in a similar fashion as in the previous e-mail:

Reading specs from /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/specs
gcc version egcs-2.90.21 971202 (egcs-1.00 release)
 /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -H -Di386 -Di586 -Asystem(unix) -Acpu(i386) -Amachine(i386) -D__i386__ -D__i586__ -Asystem(unix) -Acpu(i386) -Amachine(i386) t.cc /tmp/cca26121.ii
GNU CPP version egcs-2.90.21 971202 (egcs-1.00 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/g++
 /usr/local/include
 /usr/i586-pc-linux-gnulibc1/include
 /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/include
 /usr/include
End of search list.
/usr/include/g++/string
 /usr/include/g++/std/bastring.h
  /usr/include/g++/cstddef
   /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/include/stddef.h
  /usr/include/g++/std/straits.h
   /usr/include/g++/cctype
    /usr/local/include/ctype.h
     /usr/local/include/features.h
      /usr/local/include/sys/cdefs.h
       /usr/local/include/features.h
      /usr/local/include/gnu/stubs.h
     /usr/local/include/endian.h
      /usr/local/include/bytesex.h
   /usr/include/g++/cstring
    /usr/local/include/string.h
     /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/include/stddef.h
  /usr/include/g++/iterator
   /usr/include/g++/stl_config.h
   /usr/include/g++/stl_relops.h
   /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/include/stddef.h
   /usr/include/g++/iostream.h
    /usr/include/g++/streambuf.h
     /usr/include/g++/libio.h
      /usr/local/include/_G_config.h
       /usr/local/include/gnu/types.h
       /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/include/stddef.h
      /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/include/stdarg.h
     /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/include/stdarg.h
   /usr/include/g++/stl_iterator.h
 /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/cc1plus /tmp/cca26121.ii -quiet -dumpbase t.cc -version -o /tmp/cca26121.s
GNU C++ version egcs-2.90.21 971202 (egcs-1.00 release) (i586-pc-linux-gnulibc1) compiled by GNU C version egcs-2.90.21 971202 (egcs-1.00 release).
 as -V -Qy -o /tmp/cca261211.o /tmp/cca26121.s
GNU assembler version 970731 (i586-linux), using BFD version linux-2.8.1.0.15
 /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.1 -o t /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/crtbegin.o -L/usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21 -L/usr/i586-pc-linux-gnulibc1/lib /tmp/cca261211.o -lstdc++ -lm -lgcc -lc -lgcc /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/crtend.o /usr/lib/crtn.o
/tmp/cca261211.o: In function `main':
/tmp/cca261211.o(.text+0x28): undefined reference to `ostream & operator<<<char, string_char_traits<char> >(ostream &, basic_string<char, string_char_traits<char> > const &)'
/tmp/cca261211.o: In function `basic_string<char, string_char_traits<char> >::Rep::grab(void)':
/tmp/cca261211.o(.basic_string<char, string_char_traits<char> >::Rep::gnu.linkonce.t.grab(void)+0xf): undefined reference to `basic_string<char, string_char_traits<char> >::Rep::clone(void)'
collect2: ld returned 1 exit status

  Thank you to those who replied, but I still have not figured this out.

Thanks,
--Jim




More information about the Gcc-bugs mailing list