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