From: Tristan T. <tar...@em...> - 2000-08-24 13:49:55
|
> Yes that fixed this specific error, is g++ required for all the source code > files to work correctly ? previously I have always been using just gcc here > through default Win32 makefile 'gcc' and 'g++' are just wrappers for the real compilers 'cc1', 'cc1plus' (and others). They will invoke the proper one depending on the extension of the source file. Unfortunately this magic doesn't work at link time (linking is done by 'ld'), because libstdc++ has to added to the list of libraries. This is done by 'g++' but not by 'gcc'. I believe that 'gcc' and 'g++' are called 'drivers' in the GCC docs. Here is an excerpt from 'man gcc' DESCRIPTION The C and C++ compilers are integrated. Both process input files through one or more of four stages: prepro- cessing, compilation, assembly, and linking. Source file- name suffixes identify the source language, but which name you use for the compiler governs default assumptions: gcc assumes preprocessed (.i) files are C and assumes C style linking. g++ assumes preprocessed (.i) files are C++ and assumes C++ style linking. Suffixes of source file names indicate the language and kind of processing to be done: .c C source; preprocess, compile, assemble .C C++ source; preprocess, compile, assemble .cc C++ source; preprocess, compile, assemble .cxx C++ source; preprocess, compile, assemble .m Objective-C source; preprocess, compile, assemble .i preprocessed C; compile, assemble .s Assembler source; assemble .S Assembler source; preprocess, assemble .h Preprocessor file; not usually named on command line Files with other suffixes are passed to the linker. Com- mon cases include: .o Object file .a Archive file Linking is always the last stage unless you use one of the -c, -S, or -E options to avoid it (or unless compilation errors stop the whole process). For the link stage, all .o files corresponding to source files, -l libraries, unrecognized filenames (including named .o object files and .a archives) are passed to the linker in command-line order. .ii preprocessed C++; compile, assemble Tristan |