Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Non-localized version of MinGW?

Is there a way to download MinGW/MSYS2 with gcc, that is not localized? Localized gcc causes all warnings to become errors in CodeBlocks, if the system language is not English.
This bug is also reported here:

http://forums.codeblocks.org/index.php/topic,9489.msg67120.html

The thread also contains a working solution to the problem, but if one could download a non-localized version in the first place, this would be much more convenient.

like image 631
x squared Avatar asked Feb 13 '12 21:02

x squared


People also ask

Which compiler does MinGW use?

MinGW includes a port of the GNU Compiler Collection (GCC), GNU Binutils for Windows (assembler, linker, archive manager), a set of freely distributable Windows specific header files and static import libraries which enable the use of the Windows API, a Windows native build of the GNU Project's GNU Debugger, and ...

Why MinGW is required?

Mingw executables Gcc distributions such as mingw provide a gcc executable which can be used to compile files in any language the distribution supports. They also provide other compiler drivers, which in the case of mingw are executables such as g++, c++, g77, etc.


3 Answers

I'm pretty sure the following is not the "recommended solution", but I personally gave up on trying to find one. So: My locale is da (Danish) which causes exactly the kind of problem you describe.

My solution? Simply erase the locale used, causing the system to default to english: i.e. in my case erase the folder:

C:\MinGW\share\locale\da

(In more recent versions the location might be for example msys64\usr\share\locale\sv where in this case sv represents Swedish.)

Why on earth anyone coding in C/C++ would want their tools to output localized error-messages is beyond me...

like image 151
S.C. Madsen Avatar answered Nov 06 '22 00:11

S.C. Madsen


Gcc & G++ in mingw use the environment variable LC_ALL to define the language at top level (if this variable is set), defaulting with the system locale if available, and then english if the locale does not exist.

If you want to force those tools to output their messages in english, just add/edit the environment variable LC_ALL with the value en_US.UTF-8

like image 24
Alex Garcia Avatar answered Nov 05 '22 23:11

Alex Garcia


Use the commmand

locale -a

to see a list of enabled locales. To use USA English, I set below environment variables in my bash's source file

export LANG=en_US.UTF-8
export LC_CTYPE="en_US.UTF-8"
export LC_NUMERIC="en_US.UTF-8"
export LC_TIME="en_US.UTF-8"
export LC_COLLATE="en_US.UTF-8"
export LC_MONETARY="en_US.UTF-8"
export LC_MESSAGES="en_US.UTF-8"
like image 3
Yorkwar Avatar answered Nov 06 '22 00:11

Yorkwar