At Thu, 24 May 2007 15:08:26 GMT Jim Anderson <[EMAIL PROTECTED]> wrote:
> > Paul Pluzhnikov wrote: > > Jim Anderson <[EMAIL PROTECTED]> writes: > > > >> I tried compiling a C++ program that I have. All of the > >> C++ files compile ok, but during the linking phase, > >> I get numerous error messages. The first of which is: > >> > >> >>> test.o: In function > >> >>> > >> `__static_initialization_and_destruction_0':/usr/local/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../../include/c++/4.1.2/iostream:76: > >> >>> undefined reference to `std::ios_base::Init::Init()' > > > > The first question is: what's your failing link line? > > Always use correct compiler driver (g++ for C++ code) when compiling > > and linking. IOW, do not do this: > > > > gcc main.cpp > > > > do this instead: > > > > g++ main.cpp > > > >> It looks to me like the libraries are not being found right. > > > > Possible, but less likely than the "user mistake" above. > > > > Cheers, > > Paul, > > The link line is: > > >> gcc -g -o test test.o Product.o DerivedProduct.o Creator.o > DerivedCreator.o > > I used gcc because when I downloaded g++, the tarball did not > appear to have a complete set of code to build g++. > > At one time, didn't gcc compile and link C++ code? I do think it > is strange that gcc will compile C++ code, but not link it. gcc can link C++ code, but you need to give it a 'hint' that you are in fact linking C++ code, usually by including the -l option(s) that g++ would normally add: gcc -g -o test test.o Product.o DerivedProduct.o Creator.o \ DerivedCreator.o -lstdc++ -lc++ Or something like that -- like most people I use g++ to link C++ code, so I don't need to add the extra -l options. > > If I can figure out how to build g++, I'm more than happy to use > g++. I tried using the installed g++ on my system and it linked > the *.o files compiled by gcc just fine. So guess I'm home free. You may have linked with the wrong libraries... > > I appreciate your help but if you can shed light on why gcc > compiles C++ but does not link it, I'm curious to know why. > Personally, I think too much is included in gcc. IMHO, gcc should > compile C files, g++ for C++, etc. > > Regards, > Jim > > -- Robert Heller -- 978-544-6933 Deepwoods Software -- Linux Installation and Administration http://www.deepsoft.com/ -- Web Hosting, with CGI and Database [EMAIL PROTECTED] -- Contract Programming: C/C++, Tcl/Tk _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus