<html lang="en">
<head>
<title>Environment Variables - Using the GNU Compiler Collection (GCC)</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using the GNU Compiler Collection (GCC)">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Invoking-GCC.html#Invoking-GCC" title="Invoking GCC">
<link rel="prev" href="Code-Gen-Options.html#Code-Gen-Options" title="Code Gen Options">
<link rel="next" href="Precompiled-Headers.html#Precompiled-Headers" title="Precompiled Headers">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Funding Free Software'', the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below).  A copy of the license is included in the section entitled
``GNU Free Documentation License''.

(a) The FSF's Front-Cover Text is:

     A GNU Manual

(b) The FSF's Back-Cover Text is:

     You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Environment-Variables"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Precompiled-Headers.html#Precompiled-Headers">Precompiled Headers</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Code-Gen-Options.html#Code-Gen-Options">Code Gen Options</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Invoking-GCC.html#Invoking-GCC">Invoking GCC</a>
<hr>
</div>

<h3 class="section">3.19 Environment Variables Affecting GCC</h3>

<p><a name="index-environment-variables-2149"></a>
<!-- man begin ENVIRONMENT -->
This section describes several environment variables that affect how GCC
operates.  Some of them work by specifying directories or prefixes to use
when searching for various kinds of files.  Some are used to specify other
aspects of the compilation environment.

 <p>Note that you can also specify places to search using options such as
<samp><span class="option">-B</span></samp>, <samp><span class="option">-I</span></samp> and <samp><span class="option">-L</span></samp> (see <a href="Directory-Options.html#Directory-Options">Directory Options</a>).  These
take precedence over places specified using environment variables, which
in turn take precedence over those specified by the configuration of GCC. 
See <a href="../gccint/Driver.html#Driver">Controlling the Compilation Driver <samp><span class="file">gcc</span></samp></a>.

     <dl>
<dt><samp><span class="env">LANG</span></samp><dt><samp><span class="env">LC_CTYPE</span></samp><dd><!-- @itemx LC_COLLATE -->
<dt><samp><span class="env">LC_MESSAGES</span></samp><dd><!-- @itemx LC_MONETARY -->
<!-- @itemx LC_NUMERIC -->
<!-- @itemx LC_TIME -->
<dt><samp><span class="env">LC_ALL</span></samp><dd><a name="index-LANG-2150"></a><a name="index-LC_005fCTYPE-2151"></a><!-- @findex LC_COLLATE -->
<a name="index-LC_005fMESSAGES-2152"></a><!-- @findex LC_MONETARY -->
<!-- @findex LC_NUMERIC -->
<!-- @findex LC_TIME -->
<a name="index-LC_005fALL-2153"></a><a name="index-locale-2154"></a>These environment variables control the way that GCC uses
localization information that allow GCC to work with different
national conventions.  GCC inspects the locale categories
<samp><span class="env">LC_CTYPE</span></samp> and <samp><span class="env">LC_MESSAGES</span></samp> if it has been configured to do
so.  These locale categories can be set to any value supported by your
installation.  A typical value is &lsquo;<samp><span class="samp">en_GB.UTF-8</span></samp>&rsquo; for English in the United
Kingdom encoded in UTF-8.

     <p>The <samp><span class="env">LC_CTYPE</span></samp> environment variable specifies character
classification.  GCC uses it to determine the character boundaries in
a string; this is needed for some multibyte encodings that contain quote
and escape characters that would otherwise be interpreted as a string
end or escape.

     <p>The <samp><span class="env">LC_MESSAGES</span></samp> environment variable specifies the language to
use in diagnostic messages.

     <p>If the <samp><span class="env">LC_ALL</span></samp> environment variable is set, it overrides the value
of <samp><span class="env">LC_CTYPE</span></samp> and <samp><span class="env">LC_MESSAGES</span></samp>; otherwise, <samp><span class="env">LC_CTYPE</span></samp>
and <samp><span class="env">LC_MESSAGES</span></samp> default to the value of the <samp><span class="env">LANG</span></samp>
environment variable.  If none of these variables are set, GCC
defaults to traditional C English behavior.

     <br><dt><samp><span class="env">TMPDIR</span></samp><dd><a name="index-TMPDIR-2155"></a>If <samp><span class="env">TMPDIR</span></samp> is set, it specifies the directory to use for temporary
files.  GCC uses temporary files to hold the output of one stage of
compilation which is to be used as input to the next stage: for example,
the output of the preprocessor, which is the input to the compiler
proper.

     <br><dt><samp><span class="env">GCC_EXEC_PREFIX</span></samp><dd><a name="index-GCC_005fEXEC_005fPREFIX-2156"></a>If <samp><span class="env">GCC_EXEC_PREFIX</span></samp> is set, it specifies a prefix to use in the
names of the subprograms executed by the compiler.  No slash is added
when this prefix is combined with the name of a subprogram, but you can
specify a prefix that ends with a slash if you wish.

     <p>If <samp><span class="env">GCC_EXEC_PREFIX</span></samp> is not set, GCC will attempt to figure out
an appropriate prefix to use based on the pathname it was invoked with.

     <p>If GCC cannot find the subprogram using the specified prefix, it
tries looking in the usual places for the subprogram.

     <p>The default value of <samp><span class="env">GCC_EXEC_PREFIX</span></samp> is
<samp><var>prefix</var><span class="file">/lib/gcc/</span></samp> where <var>prefix</var> is the prefix to
the installed compiler. In many cases <var>prefix</var> is the value
of <code>prefix</code> when you ran the <samp><span class="file">configure</span></samp> script.

     <p>Other prefixes specified with <samp><span class="option">-B</span></samp> take precedence over this prefix.

     <p>This prefix is also used for finding files such as <samp><span class="file">crt0.o</span></samp> that are
used for linking.

     <p>In addition, the prefix is used in an unusual way in finding the
directories to search for header files.  For each of the standard
directories whose name normally begins with &lsquo;<samp><span class="samp">/usr/local/lib/gcc</span></samp>&rsquo;
(more precisely, with the value of <samp><span class="env">GCC_INCLUDE_DIR</span></samp>), GCC tries
replacing that beginning with the specified prefix to produce an
alternate directory name.  Thus, with <samp><span class="option">-Bfoo/</span></samp>, GCC will search
<samp><span class="file">foo/bar</span></samp> where it would normally search <samp><span class="file">/usr/local/lib/bar</span></samp>. 
These alternate directories are searched first; the standard directories
come next. If a standard directory begins with the configured
<var>prefix</var> then the value of <var>prefix</var> is replaced by
<samp><span class="env">GCC_EXEC_PREFIX</span></samp> when looking for header files.

     <br><dt><samp><span class="env">COMPILER_PATH</span></samp><dd><a name="index-COMPILER_005fPATH-2157"></a>The value of <samp><span class="env">COMPILER_PATH</span></samp> is a colon-separated list of
directories, much like <samp><span class="env">PATH</span></samp>.  GCC tries the directories thus
specified when searching for subprograms, if it can't find the
subprograms using <samp><span class="env">GCC_EXEC_PREFIX</span></samp>.

     <br><dt><samp><span class="env">LIBRARY_PATH</span></samp><dd><a name="index-LIBRARY_005fPATH-2158"></a>The value of <samp><span class="env">LIBRARY_PATH</span></samp> is a colon-separated list of
directories, much like <samp><span class="env">PATH</span></samp>.  When configured as a native compiler,
GCC tries the directories thus specified when searching for special
linker files, if it can't find them using <samp><span class="env">GCC_EXEC_PREFIX</span></samp>.  Linking
using GCC also uses these directories when searching for ordinary
libraries for the <samp><span class="option">-l</span></samp> option (but directories specified with
<samp><span class="option">-L</span></samp> come first).

     <br><dt><samp><span class="env">LANG</span></samp><dd><a name="index-LANG-2159"></a><a name="index-locale-definition-2160"></a>This variable is used to pass locale information to the compiler.  One way in
which this information is used is to determine the character set to be used
when character literals, string literals and comments are parsed in C and C++. 
When the compiler is configured to allow multibyte characters,
the following values for <samp><span class="env">LANG</span></samp> are recognized:

          <dl>
<dt>&lsquo;<samp><span class="samp">C-JIS</span></samp>&rsquo;<dd>Recognize JIS characters. 
<br><dt>&lsquo;<samp><span class="samp">C-SJIS</span></samp>&rsquo;<dd>Recognize SJIS characters. 
<br><dt>&lsquo;<samp><span class="samp">C-EUCJP</span></samp>&rsquo;<dd>Recognize EUCJP characters. 
</dl>

     <p>If <samp><span class="env">LANG</span></samp> is not defined, or if it has some other value, then the
compiler will use mblen and mbtowc as defined by the default locale to
recognize and translate multibyte characters. 
</dl>

<p class="noindent">Some additional environments variables affect the behavior of the
preprocessor.

<!-- Copyright (c) 1999, 2000, 2001, 2002, 2004 -->
<!-- Free Software Foundation, Inc. -->
<!-- This is part of the CPP and GCC manuals. -->
<!-- For copying conditions, see the file gcc.texi. -->
<!--  -->
<!-- Environment variables affecting the preprocessor -->
<!--  -->
<!-- If this file is included with the flag ``cppmanual'' set, it is -->
<!-- formatted for inclusion in the CPP manual; otherwise the main GCC manual. -->
     <dl>
<dt><samp><span class="env">CPATH</span></samp><a name="index-CPATH-2161"></a><dt><samp><span class="env">C_INCLUDE_PATH</span></samp><a name="index-C_005fINCLUDE_005fPATH-2162"></a><dt><samp><span class="env">CPLUS_INCLUDE_PATH</span></samp><a name="index-CPLUS_005fINCLUDE_005fPATH-2163"></a><dt><samp><span class="env">OBJC_INCLUDE_PATH</span></samp><a name="index-OBJC_005fINCLUDE_005fPATH-2164"></a><dd><!-- Commented out until ObjC++ is part of GCC: -->
<!-- @itemx OBJCPLUS_INCLUDE_PATH -->
Each variable's value is a list of directories separated by a special
character, much like <samp><span class="env">PATH</span></samp>, in which to look for header files. 
The special character, <code>PATH_SEPARATOR</code>, is target-dependent and
determined at GCC build time.  For Microsoft Windows-based targets it is a
semicolon, and for almost all other targets it is a colon.

     <p><samp><span class="env">CPATH</span></samp> specifies a list of directories to be searched as if
specified with <samp><span class="option">-I</span></samp>, but after any paths given with <samp><span class="option">-I</span></samp>
options on the command line.  This environment variable is used
regardless of which language is being preprocessed.

     <p>The remaining environment variables apply only when preprocessing the
particular language indicated.  Each specifies a list of directories
to be searched as if specified with <samp><span class="option">-isystem</span></samp>, but after any
paths given with <samp><span class="option">-isystem</span></samp> options on the command line.

     <p>In all these variables, an empty element instructs the compiler to
search its current working directory.  Empty elements can appear at the
beginning or end of a path.  For instance, if the value of
<samp><span class="env">CPATH</span></samp> is <code>:/special/include</code>, that has the same
effect as &lsquo;<samp><span class="samp">-I.&nbsp;-I/special/include<!-- /@w --></span></samp>&rsquo;.

     <!-- man end -->
     <!-- man begin ENVIRONMENT -->
     <br><dt><samp><span class="env">DEPENDENCIES_OUTPUT</span></samp><a name="index-DEPENDENCIES_005fOUTPUT-2165"></a><dd><a name="index-dependencies-for-make-as-output-2166"></a>If this variable is set, its value specifies how to output
dependencies for Make based on the non-system header files processed
by the compiler.  System header files are ignored in the dependency
output.

     <p>The value of <samp><span class="env">DEPENDENCIES_OUTPUT</span></samp> can be just a file name, in
which case the Make rules are written to that file, guessing the target
name from the source file name.  Or the value can have the form
&lsquo;<samp><var>file</var> <var>target</var></samp>&rsquo;, in which case the rules are written to
file <var>file</var> using <var>target</var> as the target name.

     <p>In other words, this environment variable is equivalent to combining
the options <samp><span class="option">-MM</span></samp> and <samp><span class="option">-MF</span></samp>
(see <a href="Preprocessor-Options.html#Preprocessor-Options">Preprocessor Options</a>),
with an optional <samp><span class="option">-MT</span></samp> switch too.

     <br><dt><samp><span class="env">SUNPRO_DEPENDENCIES</span></samp><a name="index-SUNPRO_005fDEPENDENCIES-2167"></a><dd><a name="index-dependencies-for-make-as-output-2168"></a>This variable is the same as <samp><span class="env">DEPENDENCIES_OUTPUT</span></samp> (see above),
except that system header files are not ignored, so it implies
<samp><span class="option">-M</span></samp> rather than <samp><span class="option">-MM</span></samp>.  However, the dependence on the
main input file is omitted. 
See <a href="Preprocessor-Options.html#Preprocessor-Options">Preprocessor Options</a>. 
</dl>

<!-- man end -->
 </body></html>

