This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Why EGCS does not contain G++? ( ->implies problems !!!)


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@xraylith.wisc.edu
http://www.xraylith.wisc.edu/~khan/
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]