This is the mail archive of the
mailing list for the libstdc++ project.
Undefined Reference to 'std::cout' etc.
- To: <libstdc++ at sourceware dot cygnus dot com>
- Subject: Undefined Reference to 'std::cout' etc.
- From: "Christopher Konvalin" <chris at comuniq dot com>
- Date: Sat, 20 May 2000 22:07:08 -0600
- Reply-To: <chris at comuniq dot com>
I just upgraded to 2.90.8 and am having all kinds of problems getting my
code to link with the new libraries. I've done everything I can think of,
so I'm falling back to the big guns :) I'm using gcc/g++ 2.95.2, and am
trying to build a rather large C++ code base. I'm using *lots* of STL (the
principle reason I upgraded) and per company standards everything is
fully-qualified (e.g. std::cout).
I built 2.95.2 and 2.90.8 together, and are installed in /usr. I just
followed the build instructions on the site, with no special flags other
than --prefix. The first problem I noticed was the libstdc++ testsuite
failed on virtually every test (except for maybe two or three - I'll post
the results at the end of the email). Ok, not a good sign, but I started
the compile of my code anyway. The compile went through OK (minus a few
fixes) but as soon as I get to the linker I see *lots* of errors, all
pertaining to std::. Everything is built with -fhonor-std, so I'm a little
confused by this. The errors pretty much seem to cover anything in the
std:: namespace (e.g. cin/cout, std_iostream, basic_string, terminate,
The LD_LIBRARY_PATH is set to /usr/lib, and here's a sample of the build
/xxxxxxx/H245Signaling.cpp -g -O0 -Wall -fhonor-std -DANSI_PROTO -DFUNCTION_
BASED -DLINUX_BUILD -STATIC_SYMS .... bunch of include dirs ....
and the linker error:
/xxxx/xxxx/xxx/H245Signaling.cpp:290: undefined reference to 'std::cout'
/xxxx/xxxx/xxx/H245Signaling.cpp:290: 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 *)'
The code it's failing on is pretty simple:
std::cout << "xxxxyyyy" << std::endl;
One last thing - when I started the initial compiles, I would get errors
from std_limits.h about min() and max(). I don't have the exact errors in
front of me (I can reproduce them if needed) but they said something like
"...min() takes 0 args...", and I wasn't using min()/max() directly. I
worked around them, but I thought I'd mention it anyway.
If anyone could help me figure this one out, I'd be *very* grateful
(deadlines looming ominously...). I've tried just about every combination
of flags and builds I can think of, and scoured the mailing list for hints,
but to no avail. If more information is needed, just let me know.
Senior Software Developer
IP Telephony Group
Comuniq Inc., Rapid City, SD, USA
p ctime etime text data total name
+ 3 0.000 165028 30570 900172 17_intro/header_ciso646.cc
- 1 0.000 0 0 0 17_intro/header_fstream.cc
- 1 0.000 0 0 0 17_intro/header_iomanip.cc
+ 1 0.000 170580 30677 939735 17_intro/header_iosfwd.cc
+ 0 0.000 170612 30805 970487 18_support/numeric_limits.cc