MinGW gcc + cmd で文字化け (Windows 7 64bit)

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
やまっち
記事: 20
登録日時: 10年前

MinGW gcc + cmd で文字化け (Windows 7 64bit)

#1

投稿記事 by やまっち » 8年前

MinGW の gcc でいろいろと試しているのですが
コンパイル時のエラー

gcc --help
の出力が cmd 上 で文字化けしてしまい、困っています。

数週間前の過去ログ (だんごさんが立てたスレッド)
http://dixq.net/forum/viewtopic.php?f=3&t=18785
http://dixq.net/forum/viewtopic.php?f=3&t=18810
も参考にしたのですが、解決に至っておりません。

gcc のコンソールへの日本語出力を sjis にする
もしくは
cmd 上での表示を EUC にする
方法、もしくはなんらかの情報がありましたら
教えて頂きたいです。


以下に情報を箇条書きします。
・MinGW は通常の物ではなく、ネットに繋がっていない PC でも
 使いたいため
 https://ja.osdn.net/projects/sfnet_nasa ... 440_1.zip/
 にある zip ファイルを解凍して使っています
・C:\mingw
 にインストールしており、また
 C:\mingw\share\locale\ja\LC_MESSAGES
 に cpplib.mo と gcc.mo がある事を確認しております。
 中を見るとバイナリ混じりですが、日本語部分の文字コードは EUC のようです。
・gcc --help > output.txt
 start output.txt
 として、テキストファイルをエディタで開くと EUC でした。
・cmd のデフォルトである chcp 932 (sjis) で文字化けしており
 chcp 20932 (EUC) だと英語での出力となってしまうため
 set LANG=ja_JP
 として日本語での出力にしましたが、やっぱり文字化けしています
・レジストリの
 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
 を編集し cmd のフォントを変える方法も試してみましたが、状況は変わりませんでした。
・set コマンドを使った環境変数も、以下の物を試しましたがうまく行きませんでした。
http://qiita.com/raa0121/items/9c39b405444c92aae631
set LANG=ja_JP.sjis
set JLESSCHARSET="japanese-sjis"
set OUTPUT_CHARSET=sjis

http://d.hatena.ne.jp/koshinishiki397/2 ... 1320494580
set LESSCHARSET=dos
set LANG=ja_JP.SJIS

http://edu.net.c.dendai.ac.jp/ad/1/2006/compiler.html
SET MINGW_DIR=C:\mingw
SET CLANG=C-SJIS
SET LANG=ja_JP

http://www.namazu.org/ml/namazu-win32-u ... 02108.html
set LANGUAGE=ja_JP.SJIS
set LC_ALL=ja_JP.SJIS
set LC_TYPE=ja_JP.SJIS
set LC_MESSAGES=ja_JP.SJIS
set LC_CTYPE=ja_JP.SJIS
set LANG=ja_JP.SJIS

だんごさん
記事: 273
登録日時: 13年前

Re: MinGW gcc + cmd で文字化け (Windows 7 64bit)

#2

投稿記事 by だんごさん » 8年前

こんにちは。gccややこしいですよね。

set LANG=ja_JP.SJIS
set LC_CTYPE=C-SJIS

これでどうですか?
ちなみに、EUCは試していませんが、書き方としては

set LANG=ja_JP.eucJP
set LC_CTYPE=C-EUCJP

になるかと思います。
 Dango San

やまっち
記事: 20
登録日時: 10年前

Re: MinGW gcc + cmd で文字化け (Windows 7 64bit)

#3

投稿記事 by やまっち » 8年前

だんごさんから教えていただいた環境変数ですが
試してみたのですが変化はありませんでした。

引き続き、何か情報がありましたらよろしくお願いします。


だんごさん
記事: 273
登録日時: 13年前

Re: MinGW gcc + cmd で文字化け (Windows 7 64bit)

#5

投稿記事 by だんごさん » 8年前

実際にこちらの方でも試してみたところ確かに文字化けが発生しました。
色々試しましたがやはりダメでした。

ひとつ疑問なのですが、
やまっち さんが書きました:・MinGW は通常の物ではなく、ネットに繋がっていない PC でも
 使いたいため
 https://ja.osdn.net/projects/sfnet_nasa ... 440_1.zip/
 にある zip ファイルを解凍して使っています
とありますが、ネットに繋がっていなくともMinGWは使用できるかと思います。
そちらで教えてくださったMinGWはインストーラーから手に入れたMinGWを軽量化すると同じくらい(+30MBほどですが)の容量になりますし、バージョンが少し古いので
もしよろしければインストーラーから手に入れるのはいかがでしょうか。
そのインストーラーから手に入れたmingwをそのままコピーして使用できます。


その際の具体的な手順になります。
1.MinGW Minimalist GNU for Windowsの右端にある「Download Installer」をクリック、そのままインストールします。
2.インストーラーから手に入れるパッケージは、「Basic Setup」の「mingw32-base」、C++を使用するなら「mingw32-gcc-g++」も追加します。言語ファイルは「All Packages」の「MinGW」→「mingw32-gcc(Classがlangのもの)」になります。チェックしたらメニューinstallationのApply ChangesでApply
3.ドライブ直下にmingwができます。言語ファイルはja以外いらないので捨てます。またvarフォルダも恐らく使わないです。
4.できたmingwは別のpcへ移動しても使用できるはずです。ただ日本語になるようにshareフォルダだけは「ドライブ:\mingw\share...」とするようにします。
5.あとは私が前回書いた環境変数を設定すれば日本語になるはずです。
 Dango San

やまっち
記事: 20
登録日時: 10年前

Re: MinGW gcc + cmd で文字化け (Windows 7 64bit)

#6

投稿記事 by やまっち » 8年前

だんごさん、非常に有益な情報ありがとうございました。
教えて頂いた通り、インストール後にフォルダごと zip 圧縮し
他の PC に持って行っても正常に動作する事を確認しました。

インストール直後に gcc --help とすると、なぜか最後の数行だけが
文字化けしてしまいますが、
set LC_CTYPE=C-SJIS
とする事で、その現象も発生しないようになりました。

Windows 7 の cmd がどうやっても EUC を表示できず
MinGW-gcc440_1.zip の中の gcc が、環境変数をどういじっても EUC しか出力できず
cygwin などの他のコンソールの導入を検討していたのですが
それをしないで済みました。

だんごさんの言う通り var フォルダを削除し share も ja 以外を
削除し zip 圧縮して 47.2 MB 程度にできました。

gcc のバージョンも
4.4.0
から
C:\MinGW\bin>gcc --version
gcc (GCC) 5.3.0
Copyright (C) 2015 Free Software Foundation, Inc.
となって良い感じです。

だんごさん、お世話になりました。
非常に助かりました。

閉鎖

“C言語何でも質問掲示板” へ戻る