This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
problem with strings and guiding-decls
- To: egcs-bugs at cygnus dot com
- Subject: problem with strings and guiding-decls
- From: Hartmut dot Loos at neuroinformatik dot ruhr-uni-bochum dot de (Hartmut S. Loos)
- Date: Fri, 23 Jan 1998 14:28:10 +0100 (MET)
- Cc: loos at cava dot neuroinformatik dot ruhr-uni-bochum dot de (Hartmut S. Loos)
Hi,
I have a problem with strings and the compiler option '-fguiding-decls'. I
tested it with a small programm I found in a previous mail. Without
'-fguiding-decls' it compiles fine, but with it it fails to get linked:
Undefined first referenced
symbol in file
operator<<(ostream &, basic_string<char, string_char_traits<char> > const &)/var/tmp/cc0AqH3V1.o
------------- String.cc -------
#include <iostream.h>
#include <string>
int main()
{
string s = "hello";
cout << s << endl;
return 0;
}
--------------------------------
> g++ String.cc -o String
> ./String
hello
> g++ -v -fguiding-decls String.cc -o String
Reading specs from /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)
/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) String.cc /var/tmp/cc0AqH3V.ii
GNU CPP version egcs-2.90.23 980102 (egcs-1.0.1 release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/opt/gnu/include/g++
/opt/gnu/lib/g++-include
/opt/gnu/include
/opt/gnu/sparc-sun-solaris2.6/include
/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/include
/usr/include
End of search list.
/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/cc1plus /var/tmp/cc0AqH3V.ii -quiet -dumpbase String.cc -version -fguiding-decls -o /var/tmp/cc0AqH3V.s
GNU C++ version egcs-2.90.23 980102 (egcs-1.0.1 release) (sparc-sun-solaris2.6) compiled by GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release).
/usr/ccs/bin/as -V -Qy -s -o /var/tmp/cc0AqH3V1.o /var/tmp/cc0AqH3V.s
/usr/ccs/bin/as: WorkShop Compilers 4.X dev 18 Sep 1996
/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/ld -V -Y P,/usr/ccs/lib:/usr/lib -Qy -o String /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/crt1.o /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/crti.o /usr/ccs/lib/values-Xa.o /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/crtbegin.o -L/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23 -L/opt/gnu/sparc-sun-solaris2.6/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/opt/gnu/lib /var/tmp/cc0AqH3V1.o -lstdc++ -lm -lgcc -lc -lgcc /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/crtend.o /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/crtn.o
ld: Software Generation Utilities - Solaris/ELF (3.0)
Undefined first referenced
symbol in file
operator<<(ostream &, basic_string<char, string_char_traits<char> > const &)/var/tmp/cc0AqH3V1.o
ld: fatal: Symbol referencing errors. No output written to String
collect2: ld returned 1 exit status
I need the flag in order to compile a large project together with 3rd party
software (LEDA). The code which needs '-fguiding-decls' looks like:
template <class T> class decl_compare_func {
friend inline int compare (const T&, const T&);
};
Do you have any ideas?
Bye,
Hartmut.