gcc problem

Steven J. Zeil zeil@cs.odu.edu
Tue Oct 21 07:44:00 GMT 1997

On Tue, 21 Oct 1997, Colin Peters wrote:

> Frank Packenham[SMTP:Etc@Weirdness.com] wrote:
> >Well the install seemed to go well, but when I try to compile ( or make )
> >anything this is the result.
> >
> >bash$ gcc laws.c
> >Borland C++ Preprocessor Version 4.00 Copyright (c) 1993 Borland
>  ^^^^^^^
> >International
> >Error: Incorrect command line option: -undef
> >gcc: Internal compiler error: program cpp got fatal signal 1
> >
> The problem, mainly, is that gcc is expecting to call the GNU version of
> cpp, and it's getting the Borland version (you have a Borland compiler
> installed, correct?). Cpp is the preprocessor, and it gets passed many
> options you give on the gcc command line, as well as lots of options
> internal to the two. Obviously Borland's cpp, while a program with the
> same purpose, doesn't have the same command line syntax, and nothing
> works.
> Solutions include:
>  - Setting up your environment so GNU cpp is earlier on the path and/or
>    Borland's is not. You might do this with a pair of batch files or
>    shell scripts for switching between "environments" (I like to set
>    up icons which run the correct batch file and start a dos shell in
>    such circumstances).

This will, however, prevent Borland's compiler from working, as it will
then try to access the GNU cpp instead of its own.

I've run into many similar clashes between $PATH and other environment
variables.  The solution I have evolved is this:

In autoexec.bat, set up a baseline path that does not include ANY of the
conflicting programs' binary directories:

  PATH c:\bin;c:\windows;...and so on...

Then set up a series of utility batch files to augment the path with the
binary directories for a given program.  For example, I have usegcc.bat:

  @PATH h:\gnuwin32\b18\H-i386-cygwin32\bin;h:\gnuwin32\b18\tcl\bin;%BASEPATH%
  ... may wish to set other gcc environment variables here instead of in
      autoexec.bat ...

and I have usebcc.bat:

  @PATH h:\bcwin32\bin;%BASEPATH%

and a similar script for Visual C++.

Then I can simply type
at an MSDOS prompt before starting to work with any compiler.

For enthusiasts of double-click program launching, create a batch file
and bind that, rather than the bcw program itself, to the Borland .ide 
file type.

Steve Zeil

For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".

More information about the Cygwin mailing list