Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Selecting message language in gcc and g++

I use gcc/g++ on Linux and since my install is in Spanish (my native language), gcc prints warnings and errors in Spanish. I would rather read them in English for two reasons:

  1. English messages are far easier to google.
  2. Spanish translations are more or less horrible.

Any help?

like image 661
ggambett Avatar asked May 15 '09 15:05

ggambett


People also ask

What are GCC options?

When you invoke GCC, it normally does preprocessing, compilation, assembly and linking. The "overall options" allow you to stop this process at an intermediate stage. For example, the -c option says not to run the linker.

What is the function of GCC command?

GCC stands for GNU Compiler Collections which is used to compile mainly C and C++ language. It can also be used to compile Objective C and Objective C++.

What does GCC stand for Linux?

The GNU Compiler Collection (GCC) is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain and the standard compiler for most projects related to GNU and Linux, including the Linux kernel.


1 Answers

The end of the GCC manpage contains an overview of its locale environment variables:

  • LANG
  • LC_CTYPE
  • LC_MESSAGES
  • LC_ALL

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 LC_CTYPE and LC_MESSAGES 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 en_GB.UTF-8 for English in the United Kingdom encoded in UTF-8.

The LC_CTYPE 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.

The LC_MESSAGES environment variable specifies the language to use in diagnostic messages.

If the LC_ALL environment variable is set, it overrides the value of LC_CTYPE and LC_MESSAGES; otherwise, LC_CTYPE and LC_MESSAGES default to the value of the LANG environment variable. If none of these variables are set, GCC defaults to traditional C English behavior.

I do this:

LC_MESSAGES=C gcc-command-here 
like image 119
Johannes Schaub - litb Avatar answered Oct 05 '22 16:10

Johannes Schaub - litb