From: khan AT xraylith DOT wisc DOT edu (Mumit Khan) Subject: Re: Why EGCS does not contain G++? ( ->implies problems !!!) 18 Dec 1997 14:49:33 -0800 Message-ID: <9712181628.AA12219.cygnus.gnu-win32@modi.xraylith.wisc.edu> References: <3498F6F9 DOT 12A24FEB AT obspm DOT fr> To: root Cc: gnu-win32 AT cygnus DOT com My apologies for not having more time to help with egcs installation problems. Right now I'm a bit pressed for time with other projects. I would like to clarify a few things so there is no misunderstanding: 1 egcs-1.00 provides a C++ compiler. Originally the executable used to called g++, and then there was also c++, which was typically just linked to g++. The difference was (there is no difference in egcs-1.00) that g++ will also link with -lg++ (which is not a standard library) in addition to whatever library was needed for C++ run-time suport. Currently, c++ and g++ both just link to -lstdc++ to profide the C++ run-time support. libg++ is deprecated, or at least not supported, so it's not linked in by default anymore. EGCS provides *both* executables, c++ and g++, which are basically the same thing. 2 egcs-1.00, just like FSF gcc distribution, uses on environment variables to find paths to include files, libraries, compilers etc; when you use a binary distribution like the ones for gnu-win32/mingw32, you have to set these correctly to get things working. Here's a list of the most essential ones (for the shell and egcs): * PATH: Your egcs binary directory must come before cgywin32 b18 binary directory if you have these under different trees. eg., PATH=c:\egcs\bin;c:\gnuwin32\b18\H-i386-cygwin32\bin;%PATH% * GCC_EXEC_PREFIX: gcc uses this one to find the actual compilers such as cc1 and cc1plus and also other files such libgcc.a and crt0.o. eg., GCC_EXEC_PREFIX=c:\egcs\lib\gcc-lib\ The trailing slash is important for a variety of reasons. * LIBRARY_PATH: gcc looks for various libraries using this path. eg., LIBRARY_PATH=//c/egcs/H-i386-cygwin32/i386-cygwin32/lib: //c/egcs/H-i386-cygwin32/lib * C_INCLUDE_PATH: include path list for "C" include files (stdio.h eg) eg., C_INCLUDE_PATH=//c/egcs/H-i386-cygwin32/i386-cygwin32/include: //c/egcs/include * C_PLUS_INCLUDE_PATH: include path list for "C++" includes. Must also specify the paths to C includes as well. eg., CPLUS_INCLUDE_PATH=//c/egcs/include/g++://c/egcs/include: //c/egcs/H-i386-cygwin32/i386-cygwin32/include * OBJC_INCLUDE_PATH: include path list for "objC" includes. Usually the same as C include path: eg., OBJC_INCLUDE_PATH=%C_INCLUDE_PATH% And others such as COMPILER_PATH, but usually you can do without it if you define the ones above. 3 EGCS provides *both* c++.exe and g++.exe, and if you don't have one of the two, something is wrong with the tar program used to unpack the distribution. In the binary distribution, g++.exe is a link to c++.exe, and tar should have done the right thing (either use symbolic link or make a new file). If you have one that is zero-sized, simply copy over the other one on top. Regards, Mumit -- khan AT xraylith DOT wisc DOT edu http://www.xraylith.wisc.edu/~khan/ - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".