在gcc和g ++中选择消息语言

gga*_*ett 27 gcc localization g++

我觉得这个问题很愚蠢,但在这里.我在Linux上使用gcc/g ++,因为我的安装是西班牙语(我的母语),gcc用西班牙语打印警告和错误.我宁愿用英文阅读它们有两个原因:

  1. 谷歌的英文消息要容易得多.
  2. 西班牙语翻译或多或少可怕.

有帮助吗?我已经google了这个,但关于gcc和g ++的每个"语言"主题都是指编程语言,而不是人类语言.

Joh*_*itb 18

GCC联机帮助页的末尾包含其语言环境变量的概述:

  • LANG
  • LC_CTYPE
  • LC_MESSAGES
  • LC_ALL

这些环境变量控制着GCC使用本地化信息的方式,这些信息允许GCC使用不同的国家公约.GCC会检查区域设置类别LC_CTYPE以及LC_MESSAGES是否已将其配置为执行此操作.可以将这些区域设置类别设置为安装支持的任何值.典型值是英国的英语en_GB.UTF-8,以UTF-8编码.

LC_CTYPE环境变量指定字符分类.GCC使用它来确定字符串中的字符边界; 这是包含引号和转义字符的一些多字节编码所必需的,否则这些字符将被解释为字符串结尾或转义符.

LC_MESSAGES环境变量指定的诊断消息中使用的语言.

如果LC_ALL设置了环境变量,则它将覆盖LC_CTYPE的值LC_MESSAGES; 否则,LC_CTYPE并且LC_MESSAGES默认为LANG环境变量的值.如果没有设置这些变量,GCC默认为传统的C英语行为.

我这样做:

LC_MESSAGES=C gcc-command-here
Run Code Online (Sandbox Code Playgroud)


Per*_*seP 5

要将gcc转换为英语,必须将环境变量LANG设置为英语:

$ export LANG = zh-CN

将其添加到您的.profile文件中,它将始终为英文

  • 或直接在外壳中工作时,较少干扰`LANG = en <CMD> [ARGS ...]`。 (2认同)
  • 为了确保它适用于所有程序,区域设置应包含编码,并且它必须是生成的区域设置 - “locale -a”中的列表之一。例如,“en_US.UTF-8”通常是一个不错的选择,但甚至不能保证生成(请参阅树莓派) (2认同)