|
ウェブやソフトウェアに関するサポート&情報サイトです。サイト構築からソフトウェアの作成、利用まであなたの助けになるかも・・・・しれません。たぶん・・。
先のインストール先から、最新のフルセットアップファイルをダウンロードします。
2010.05現在であれば、MinGW-5.1.6.exeになります。
共通に必要となるmingw用の文字コード変換ライブラリiconvをダウンロードしておきます。
2010.05現在であれば、以下のファイルが一式です。
少なくとも上記の上から3つのファイルは必要です。開発環境などを整えたい場合は、すべて必要です。
次に、GCC3系の場合は、以下のファイルをダウンロードします。
GCC3系は、20060117-1ビルド分をダウンロードします。20060117-2,20060117-3など、より新しいビルドがありますが、これでは、文字コードの変換ができないようです。
ここでは、20060117-1ビルド分を使うことに注意してください。
また、ダウンロードしたファイルを、すべて、MinGWのインストール先へ解凍・上書きしていきます。
少なくとも上記の上から2つのファイルは必要です。他の言語環境も整えたい場合は、すべて必要です。
次に、GCC4系の場合は、以下のファイルをダウンロードします。
また、ダウンロードしたファイルを、以下の順番で、すべて、MinGWのインストール先へ解凍・上書きしていきます。
次に、MinGWのコンパイルのための環境変数の設定を行います。
また、ダウンロードしたファイルを、以下の順番で、すべて、MinGWのインストール先へ解凍・上書きしていきます。
ここまで設定を終えたら、一度、C++でコンパイルしてみましょう。
例えば、以下のようなソースコード(sample.cpp)を用意します。
|
|
上記のサンプルソースコードをc:\mingw\bin というディレクトリにあるとし、以下のようにコマンド入力すると、コンパイルができます。
このときの実行ファイルは、"sample.exe"となります。
|
作成された実行ファイル"sample.exe"を実行してみましょう。
|
ここでは、Qt CreatorのバイナリでOKです。最新のバージョン(2010.5現在は、1.3.1)をダウンロードし、インストールします。
ほとんどは、画面の指示に従ってインストールするだけです。
注意すべき点は、MinGWをインストールしないことです。
先にインストールしたMinGWを使用します。
同梱されているMinGWは、GCC3系/GCC4系にかかわらず、ソースコードの文字コード、及びリテラル文字列がUTF8の場合を除き、問題となるので、
ここでは、インストールしないことに注意してください。
そのため、インストールの4画面目で"MinGW"のチェックを外しましょう。
次に、Qt Creatorを起動して、Qt ライブラリの設定をします。
メニューの[ツール(T)] - [オプション(O)]を選択します。
ここで、画面左のツリーから、Qt4-Qt Versionを選択します。
画面右に自動検出が表示されますから、その中に、今回指定したいQtライブラリ(SDK)のパスがある場合は、それを選択します。
もし、見当たらない場合は、マニュアルを選択し、画面右の+ボタンをクリックします。
子アイテムが表示されますから、それを選択し、画面右下に
最後に、画面右下のデフォルト Qt バージョンに、上記で設定したバージョン名を選択して、適用ボタンをクリックします。
次にデバッガを指定します。
画面左のツリーから、デバッグ-Gdbを選択します。
画面右のGdbのパスに、Gdbの実行ファイルをフルパスで指定します。(例:C:\MinGW\bin\gdb.exe)
もし、gdb.exeが、どこにもないようであれば、以下からダウンロードし、gdb.exeのみを適当なディレクトリへ解凍しましょう。
その解凍先を、ここに指定します。
ダウンロード先:http://ftp.gnu.org/gnu/gdb/
2010.05現在では、gdb-7.1.tar.gz が最新のようなので、これをダウンロードし、解凍して使います。
基本的にMinGWは、文字コードを問いません。逆にいえば、デフォルトの動作は、すべて文字コードがASCII(Laten)と認識されるということでもあります。 特に何も指定しない場合は、プログラム内部の文字コードは、ソースコードの文字コードで扱われることになります。 この点、VC++でも同様です。VC++の日本語版を使っていれば、SJIS,UNICODE(UTF-16)でも使えます。ソースコードの文字コードにて、内部で扱う文字リテラルが、ShiftJISになるかUNICODEになるか決定します。
|
例えば、上記のコードをShiftJISで保存したものとUNICODE(UTF-8 BOMあり)で保存したものをclコマンドでコンパイルしてみます。
|
これをそのまま、DOSのプロンプトから実行します。
|
ちゃんと、6バイトデータ、8バイトデータとして見れています。 UNICODEの場合は、出力文字列がUNICODE(UTF-8)のため文字化けしています。
続けて、MinGWで同じようにやってみましょう。
|
上記のように、MinGWでは、というよりGCCでは、UNICODEにBOMがあると正しくコンパイルできないのです。 ここで、UTF-8 BOMなしのファイル"sample_utf8n.cpp"を作成して同じようにコンパイルしてみましょう。
|
これで、とりあえず、VCと同じことができました。 それぞれ実行してみましょう。
|
GCCの場合は、入力の文字コードと実行ファイルの文字コードを、それぞれ指定することができます。 では、UTF-8のソースコードをShiftJISの実行ファイルへ変換してみましょう。
|
こんな感じで、UNICODE(UTF-8)のソースコードから今までのShiftJISのWindowsアプリケーションを作成できました。
さて、ShiftJISで記述されたソースコードは、このままで良いかというと、違います。
同様に、ソースコードがShiftJISであると指定してあげないと正しくコンパイルできないことがあります。
以下のShiftJISのソースコードをコンパイルしてみましょう。
|
このようにエラーが出力されてしまいます。
これは、GCCがあくまで文字コードがASCII(laten)と認識している証拠です。
|
このようなソースコードを正しくコンパイルするには、以下のように指定してあげるとうまくいきます。
|
これで、ShiftJISで記述されたソースコードがコンパイルできましたね。
ここまでを踏まえて、Qt Creator + MinGWで日本語をソースコードに埋め込んでみましょう。
VC++では、何も意識せずに日本語を記述できたと思います。しかし、MinGWでは、日本語を記述する場合は、コンパイルのオプションを先のようにソースコードの文字コードとして指定してあげる必要があります。
上記では、g++ のパラメータに直接記述していました。Qt Creatorでは、プロジェクトファイルに記述することになります。
|
このように追加すれば、ShiftJISで記述されたソースコードでShiftJISのWindowsアプリケーションを作成することができます。
また、UTF-8のソースコードであれば、以下のようにすれば良いでしょう。
|
また、以下のようにプロジェクトの設定の中で、エディタの文字コードを指定することもできます。
では、先の何もないダイアログ画面を表示するQtアプリケーションでタイトルに日本語を直接表示させてみましょう。
以下のようにタイトル表示する9行目に追記します。
|
|
コメントをどうぞ