• ベストアンサー

MinGWについて。

MinGWをインストールしたのですが、printfで日本語を出力しても難しい漢字がいくつか出てきてしまいます。それは”こんにちは”などでもです。色々なMinGWでも試しましたが同じでした。windows10 64bit用の物を選択しました。自分が使ってるのが64bitです。windowsも初期化を試しても同じでした。前までは正常でした。別のパソコンでも正常です。何が原因か分かりません。解決方法あったら教えて頂けないでしょうか?よろしくお願いします。

  • hycl
  • お礼率88% (8/9)

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

コマンドプロンプトで実行するなら、シフトJISでソースプログラムを保存しましょう。

hycl
質問者

お礼

本当にありがとうございました。

関連するQ&A

  • MinGWのgccでOpenMPを使う方法

    MinGWのgccでOpenMPを使いたいのですが、サンプルソースコードを以下のようにコンパイルするところでエラーとなります。 gcc -fopenmp -O2 abc.c その結果が以下のようです。 ld.exe: cannot find -lpthread pthreadがみつからないのですが、あるけど見つからないのではなく、もともとない、が正解のようです。MinGWをインストールする際、ものすごく多くのファイル選択の可能性があり、デフォルトでやると欠落してしまうんだと思います。インストールのセレクトの仕方を教えて頂ければと思います。検討がつかないぐらいセレクションのリストが長々としているので。あるいは別の解決方法でも。よろしくお願いします。

  • zlibが見つからない

    お世話になります。 libpngをMinGW環境にインストールしようとしています。 ./conifureを実行すると、以下のとおりエラーとなります。 configure: error: zlib not installed zlibは/usr/localにインストール済みなのですが、 どなたか解決方法をご存知でしょうか? libpng-1.6.18 zlib-1.2.8 MinGWは4.8.1をWindows7(64bit)に入れています。 よろしくお願いします。

  • Eclipse CDT MinGWによるC言語

    EclipseでC言語の開発環境を整えたいと思い、CDTをインストールし、コンパイラにはMinGWをインストールしました。CDT、MinGWは正常にインストールでき、MinGWはPATHに設定済みです。 Eclipse上でCプロジェクト"sampelC"を作成し、ソースファイル"sample"を作成しました。 以下sampleコードです。 #include<stdio.h> int main(void) { printf("Hello World"); return 0; } Eclipse上で実行するとコンソールに Info: Internal Builder is used for build gcc -O0 -g3 -Wall -c -fmessage-length=0 -o sample.o "..\\sample.c" gcc -o sampleC.exe sample.o 20:16:04 Build Finished (took 151ms) と表示され、ダイアログに 'sampleCデバックの起動'に問題が発生しました。プロセス開始中のエラー -詳細- プロセス開始中のエラー。 プログラム "D:\workspace\sampleC\sample.c" を実行できません: 起動失敗 プログラム "D:\workspace\sampleC\sample.c" を実行できません: 起動失敗 プログラム "D:\workspace\sampleC\sample.c" を実行できません: 起動失敗 と表示されます。 しかしながら、生成されたsample.exeをコマンドプロンプトで実行すると正しく起動します。 よってコンパイルは正常にできているということだと思います。 Eclipse上で実行する方法のご教授をお願いします。

  • MingwでC++のソースがコンパイルできない。

    質問があるのですがよろしくお願いしします。 プラットフォームは Windows HOME です。 MinGWでC++のhelloworld.cppという名前のプログラム ------ここから----------- #include <iostream> using namespace std; int main(){ cout <<"Hello World!!\n"; return 0; } -------ここまで----------- を、gcc helloworld.cpp とWindowsのコマンドプロンプトから打ってコンパイルしようとしたのですが、 undefined reference to std string::size() const undefined reference to std string::operator[](using int) const undefinrd reference to std::cout undefinrd reference to std::basic_ostream<char, std::char traits<char> >&, char const*) undefinrd reference to std::ios_base::Init::() undefinrd reference to std::ios_base::~Init::() などのエラーが出て、コンパイルできません・・ hello.cという名前のC言語プログラム --------ここから------ #include<stdio.h> int main(void){ printf("Hello GCC World on Windows!!\n"); } ------ここまで------- は、gcc hello.c で正常にコンパイルでき、生成したexeファイルも正常に動きます。 また、eclipse CDT上からc++プログラムをMinGWでコンパイルすることもできるのですが・・ なぜかWindowsのコマンドプロンプトからc++プログラムをコンパイルしようとするとエラーが出てしまいます。(C言語のプログラムでもエラーが出ることが時々あります。) どなたか詳しい方いらっしゃいましたらご教授頂けると幸いです。 よろしくお願いします。

  • Mingwで扱うソースコードの文字コードについて

    Mingwでプログラムを作っているのですが、使用する文字コードについてご意見を伺いたくて質問いたします。 コレ!という解がないかもしれない質問なので、色々ご意見をいただければと思います。 よって、全く急ぎの質問ではありません。 1~2週間で解決できればいいな~というのんびりした質問です。 現在、Win7 32bit 環境で、C言語メインで開発しており、Mingwは2017年5月頃に入手したものをそのまま使っております。 バージョンは、 gcc version 6.3.0 (i686-posix-dwarf-rev2, Built by MinGW-W64 project) GNU gdb (GDB) 7.11.1 GNU ld (GNU Binutils) 2.27 iconv (GNU libiconv 1.9) GNU Make 3.81 等となっており、相当古いものです。現在のままでもさほど支障はないのですが、gccにいたっては既にナンバーが2遅れであり、そろそろバージョンアップしようと久しぶりにmingw-get-setup.exeを立ち上げました。 念のため旧バージョンのディレクトリ名を変えて上書きしないようにし、インストール完了しました。 そして、いつものようにmake経由でコンパイルコマンドを入力するとiconv関連でエラーが発生します。 cc1.exe: error: no iconv implementation, cannot convert from cp932 to UTF-8 make: *** [b-102.obj] Error 1 b-102.objというのがmainを含んだoファイルです(MakeファイルをborlandやVC++互換にしているため、拡張子がobjになっています) ソースコードの文字コードはSJIS、プログラム全体としては -DUNICODE -D_UNICODE オプションをつけて、文字列リテラルは _T("")マクロを使い、TCHAR型とtchar.hを使って、 UTF16を内部コードにしています。 コンパイルコマンドは gcc -finput-charset=cp932 -std=gnu99 -DUNICODE -D_UNICODE -O3 -Os -Wall -Wuninitialized -s -c -o b-102.obj b-102.c で、旧バージョンのmingwでは問題ないものでした。 ネットで調べてみると、Mingwの文字コード関係はときどきバグや設定ミスが入るとの事でしたので、2019年1月15日からバージョンアップするたびにインストールしてみていますが、2019年1月27日のバージョンに至るまで解決していません。 現在の最新バージョンとしているのは gcc version 8.2.0 (MinGW.org GCC-8.2.0-3) GNU gdb (GDB) 7.6.1 GNU ld (GNU Binutils) 2.31.1 iconv (GNU libiconv 1.14) GNU Make 3.81 であり、gdbのバージョンがなぜか古いこと以外は問題無いように思います。 そこで本題に戻るわけですが、いくつかの解決策からどれを選ぶか迷っています(私の知らない、想定していない解決策があるかもしれません)。 実際に色々やっている開発現場の方のご意見も頂戴したいと思います。 以下、当方で考えている解決策です。一長一短ありそうなので、「その方法は○○が面倒だ」「Mingwではその方法は△△の理由でオススメしない」など教えてください。 なお、現在環境を切り替えるため、コマンドプロンプトを起動する際に、旧バージョンと新バージョンで作業するため以下の環境変数をsetコマンドで一時設定して使っています。 この問題解決のため、新バージョンでは環境変数をいくつか追加設定していますがうまくいきません。 旧バージョン: PATH=C:\mingw32_2017\bin;%PATH% PATH=C:\mingw32_2017\msys\1.0\bin;%PATH% 新バージョン: set MINGW_HOME=C:\MinGW;%MINGW_HOME% set MSYS_HOME=C:\MinGW\msys\1.0;% MSYS_HOME% set C_INCLUDE_PATH=C:\MinGW\include;%C_INCLUDE_PATH% PATH=C:\MinGW\bin;%PATH% PATH=C:\MinGW\msys\1.0\bin;%PATH% 以下、当方の考えている解決策案です。当方にとって望ましい順です。 案1. 環境変数や設定ファイルを書き換えることで、iconvを望みどおりに動作させる。 現在はMINGW_HOME、MSYS_HOME、C_INCLUDE_PATHしか見つけておらず、もしかしたら新たに設定が追加されているかも?。 案2. コンパイルコマンドやリンカコマンドに適切なオプションを設定する? こういったことができるという情報は把握してないのですが、あるといいな、ぐらいです。 案3. ソースコードの文字コードを全てUTF16に置き換える。 かなり面倒ですが、一旦できれば今後は楽かもと思っています。UTF8にしたくないのは、どうせいつかはUTF16になっていくのに、中途半端に1バイト幅から?バイト幅まですごく可変長な文字コードを使いたくないという理由です。内部コードもUTF-16にしているので、ソースの文字コード、扱うファイルの文字コード、内部文字コードを揃えられたら楽です。 ただ、200近いソースコードを_T("")マクロでせっかくユニコード対応させたのに、口惜しくはあります。 また、MingwでUTF16は面倒すぎるという報告も多数見つけているので、不安ではあります。最新バージョンではどうなのでしょうか。 他にも、VC++やClangにも対応できる無難な文字コードを選びたいと思っています。 さらにいずれQtも使ってみたいので、そういった有名な外部ライブラリとの相性をご存知の方はご教授ください。 案4. makeでコンパイル命令を出す際に、自動的にiconvを呼び出して、別ファイルに出力するのではなく、フィルターのように機能させる方法があれば・・・。調べてみましたが、それらしい機能は見つかりませんでした。 案5. ソースコードをUTF8に統一する。 現在わかっている範囲で一番やりたくない方法です。 案6. Mingwのアップデートを待つ。 いまのところ効果無しですが、うまくいく目算があればもうすこし粘ろうと思います。 案7. 上記以外の方法。 当方が知らないだけで、インストール時の隠し設定とかあるかも、という期待を込めて。 現在うまくやってらっしゃる方、開発現場の裏技を知っている方、そのほか「面倒だけどウチはこれで妥協してる」など、いろいろな情報をお待ちしています。 よろしくお願いいたします。

  • pleiades4.2でc++をする方法

    pleiades4.2でc++をしようとしているのですが、うまくいかないので教えてください。 pleiadesを起動後、新規でc++プロジェクトを選択し、 プロジェクトタイプ:Hello World! C++ プロジェクト ツールチェーン:MinGW GCC で始めてみたのですが、ビルド→実行してもコンソールに何も表示されません。 ソースは初期のままで途中エラーもはいてないので、どこに問題があるのかがよくわかりません。 どうすれば動作するようになるのでしょうか? ちなみにpleiades4.2は64bit,Ultimateをインストールしており、更新も行ってます。 またcygwin等も必要なのかと思ったのですが、pleiades4.2では単体でも動作することが可能なようなのでインストールはしていません。 解決策の程よろしくお願いします。

  • 文字化け

    友達から送られてくるメールですが、たまに一部分だけ文字化けして読めなくなります。友達からのメールで内容が分からないので、ここに載せる事が出来ませんが、文字化けした部分は、漢字、⊃、い、Δ、・、ぁ、△、⊃、た、⊂、ぅ、サ…など、漢字や平仮名や記号が混じっています。エンコードをチェックしてみましたが、日本語(自動選択)になっていました。 パソコンは、最近、Windows XP SP2をインストールしましたが、インストール前のWindows XPの時からこの現象は起きていました。メールはOutlook Expressで受信しています。何が原因で、どのようにしたら直るのか教えてください。 私のパソコンが原因でないとしたら、友達に原因と解決法を教えてあげたいと思っています。そちらもあわせてお願いします。 一生懸命書いたつもりなのですが、内容が分かり辛かったらごめんなさい。

  • C言語環境について

    Windows7 64bitに、gccを使いたく、『minGW-w64』をインストールでエラー発生します(添付)。Windows7を使っている事がだめなのは承知の上です。ご教授下さい。エディタは『サクラエディタ』。宜しくお願い申し上げます。

  • google chromeが起動しない

    今までGooglechromeを既定のブラウザとしてずっと使ってきたのですが、突然起動しなくなり、初期化して再インストールしました。インストール後すぐは正常に立ち上がるようにはなったものの、一度閉じてもう一度立ち上げようとすると反応しなくなりダメなようでした。昨日まで全く問題なく使えていたので思い当たる原因はありません。詳しい方解決策を教えてください。pcはwindows7です。よろしくお願いします。

  • osをインストールし直したらネットに繋がらなくなりました;;

    一昨日、パーテーションを増やすため、特に大切なデータもなかったので、OSを再インストールすることにしたのですが、 パーテーション分けまでうまくいき、インストールも正常におこなわたのですが、ネットにまったく繋がらなくなってしまいました;; 有線接続なんですが、モデムのランプがそのケーブルのところだけついてなく、ケーブル自体が認識されていないのかと思い、別のパソコンに接続してみたところ、しっかりランプが点きました。 つまりパソコンに以上があるのか?とも思ったんですが、インストール前は普通にネットが出来ていたのに、OSインストールし直したら突然故障ってありえるんでしょうか? あと、心当たりがひとつあります。 実はインストールする際に黒い画面になり windows vista home puremiam windows vista home puremiam とゆう感じの二つの選択肢が出て、初期では下のほうに選択されていたのを、上のほうのvistaを選択してインストールしてしまいました。 これが原因だと思い、何度も再インストールを繰り返してみたんですが、最初の一回以降、何度やってもこの画面にならず、お手上げ状態です。 なにか解決策はないでしょうか? お願いします><。

専門家に質問してみよう