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.

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.

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
_______________________________________________
help-gplusplus mailing list
help-gplusplus@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to