MinGWについて
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[藤井のスタートページ]]
* はじめに [#qf404216]
Windows Program 開発のためのフリーのツールの一つとして
&ref(http://www.mingw.org/,MinGW - Minimalist GNU for Win...
がある。この文書は、それを使うためのメモである。
MinGW は Windows 版の gcc/g++ を中心とした program package
(resource compiler も用意されている(windres又はwrc))であ...
その実行環境にはいくつかの選択肢がある。例えば
- Windows のコマンドプロンプトで頑張る
- Cygwin 環境下で行う
- MSYS 環境下で行う
- Dev-C++ で行う
- &ref(http://www.eclipse.org/,Eclipse); の CDT を使う
などがある。
gcc をコマンドプロンプトで使うだけなら、PATH に MinGW の
インストール先の bin (default では C:\mingw\bin )を付け加...
なお、Windows Programming 関連については以下の別ページも...
- [[MinGWによるWindows Programming]]
- [[MinGWによる日本語Windows Programming]]
- [[MinGWによる Network Programming]]
** Windows 7 に関する追記 (2010年5月25日) [#x6c831c4]
Windows 7 で gcc/g++ をコマンドプロンプトで動かしてみた。
標準ユーザでも問題無さそうであることを確認した。
日本語(SHIFT_JISコード)ソースファイルも扱いたかったので、
gcc-core と gcc-g++ は 3.4.5-20060117-1 にした。
パッケージのバーションは
- binutils 2.20.1
- gcc-core 3.4.5-20060117-1
- gcc-g++ 3.4.5-20060117-1
- runtime-dll 3.18
- runtime-dev 3.18
- w32api-dev 3.14
を使った。いずれも tar+gzip されているものをとってきて ta...
USB メモリに展開。インストール先 Windows 7 機に管理者アカ...
ログオン。その USB を Windows 7 機に差して、\mingw フォル...
ごっそり C:\mingw に copy。その後、
- コントロールパネル
- システムとセキュリティ
- システム(右側ペインにある)
- システムの詳細設定(左側ペインにある)
と選んで「詳細設定」タブで「環境変数」を選んで、システム...
PATH に C:\mingw\bin を追加。これで完了。
g++ -finput-charset=CP932 -fexec-charset=CP932
で SHFT_JIS の日本語も大丈夫("機構" の文字列も大丈夫)。
なお、インストールしなくとも、標準ユーザで USB に置いた
まま PATH だけを通してもうまくいった。例えば、USB メモリが
ドライブ D: だとすると、コマンドプロンプトに入ったら、
SET PATH=D:\mingw\bin;%PATH%
とすればよい。
**参考リンク [#j48c20cb]
- http://www2.atwiki.jp/ccw/
* 文字コード問題 [#mea1588c]
文字コードはやっかいな問題である。WindowsNT系及びCE系は
base が Unicode (UCS-2LE)
なので、文字列 literal などは、
その文字コードで program を書きたいところだが、これが難し...
現在(2006年1月6日)gcc 3.4.2 (mingw-special) で動かして...
文字コード指定がなかなかうまくいかない。
** (26-May-2010)追記 [#f409a484]
gcc/g++ の option -finput-charset、-fexec-charset だが、
3.4.5-20060117-3 ではうまくいかない。どうも iconv が
link されていないらしい。3.4.5-20060117-1 の方はうまくい...
** Shift_JIS [#a9def330]
とりあえず、日本語を通したければ Shift_JIS で書いて、
gcc -finput-charset=CP932 -fexec-charset=CP932 infile.c
とすれば、Shift_JIS base のプログラムはできる。0x5C 問題
も無いみたいだ。
(だがなぜか、CP932 の代わりに SJIS と書いても SHIFT_JIS と
書いても MS_KANJI と書いてもうまくいかない -- iconv で受...
ものは OK のハズなんだが、、)。
** UTF-8 [#l4021273]
gcc の入力の文字コードの default は UTF-8 とのことなので、
「メモ帳」を使って、UTF-8 で保存して
gcc -fexec-charset=CP932 infile.c
としてもうまくいかない。これは、「メモ帳」が UTF-8 のファ...
あることを示すために、先頭に 0xEF 0xBB 0xBF の3バイトを付...
ためで(これは幅0のスペース文字)、この3バイトを除去して...
上記記述でうまくいく。
** _T マクロの利用 [#v4978987]
Windows programming をやったことがある人間なら知っている...
が、95系と NT系、CE系のソースを共用させる目的で _Tマクロ...
利用する。例えば
#ifdef UNICODE
#define _UNICODE
#endif
#include <windows.h>
#include <TCHAR.H>
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
{
TCHAR msg[] = _T("高エネルギー加速器研究機構の藤井です...
TCHAR title[] = _T("Hello Title");
MessageBox (NULL, msg, title, MB_OK);
return (0);
}
てな具合である(機構の構の字が問題の 0x5C を含んでいるので
こういう例題にしてある)。ここで、MessageBox関数は UNICOD...
定義されていれば WideCharacter版が、そうでなければ Single...
使われる。というわけで、UNICODE を定義して compile すれば
NT、CE系の実行イメージが、そうでなければ 95系でも使えるイ...
作られる。これを Shift_JIS で whello.c として保存したとす...
NT、CE系の実行イメージを作るには
gcc -DUNICODE -finput-charset=CP932 -fexec-charset=UCS-2...
とすればよい。
* MSYS [#l04afe7f]
MSYS は MinGW を利用するための console 型インターフェース...
で UNIX 系の script などを使えるようにする最小システムと...
提供されている。
MinGW で開発したいのだが Cygwin を install するのはどうも
大げさすぎるという場合に Cygwin の代替として使うという位...
配布は Winodows のインストール用実行イメージで行われてい...
インストールは簡単である。MinGW より先にインストールする...
推奨されているが、後からでも(多分)特に問題ない。ただし、
''絶対に MinGW の bin と MSYS の bin を混ぜてはいけない''。
MSYS には gzip や tar が含まれているので、後は必要な tar-...
取得して展開し、インストールすればよい。MinGW に必要最低...
tar-ball は
- mingw-runtime
- w32api
- binutils
- gcc
だそうである。これらは全部 MSYS とは別のフォルダ
(例えば C:\mingw とか)か MSYS 配下の mingw に
インストールする。
何度も言うが、
''間違っても MinGW の bin と MSYS の bin を混ぜてはいけな...
MSYS 配下の mingw にインストールしない場合は
/etc/fstab を作って、その中で指定しておく。
/etc/fstab の例が /etc/fstab.sample として存在しているの...
書き換えは容易である。
ここまで出来れば、MSYS の
Console で hello world 程度の実行イメージは UNIX 系の通常...
ただし、default で作られる実行イメージファイルは a.out で...
である。
* Dev-C++ [#bd6cf2ce]
MinGW を利用するためのGUIを持つIntegrated Development Env...
としては
&ref(http://www.bloodshed.net/devcpp.html,Dev-C++);がある...
フルパッケージにはMinGWやデバッガ−のGDBも含まれているらしい
(2006-01-04現在:Dev-C++ 5.0 beta 9.2 (4.9.9.2))
ので、これをインストールしてみる。
** 日本語化について [#xca8c7b6]
元の Dev-C++ は日本語が問題となる。本体もフォントの設定な...
起こす。これに対しては
&ref(http://dev-cpp-jp.sourceforge.jp/,DevC++-JPプロジェ...
で日本語対応パッケージを配布している。多国語対応の progra...
するつもりなら、こちらの方がよいかも知れない。
ただし、筆者の場合、すでに英語版としてインストールしてし...
ので、
ftp://www.cs.tohoku-gakuin.ac.jp/pub/windows/IDE/Dev-C++/...
の方法で日本語化することにする。
** Dev-C++ を使ってみて [#k7c2e18d]
少し使ってみたが、β版ということもあるだろうが、まともに使...
ちょっと今ひとつの感がぬぐえない。特にプロジェクトへの新...
ファイル名を入れた後、削除しようとしてもまともにいかない。
一度 Dev-C++ を終了して手でプロジェクトファイルを編集する...
しかも、それだけではダメで、一度プロジェクトに記載されて...
全部はずして、もう一度プロジェクトへ挿入し直さないと、正...
作られない。
また、ソースを修正した後 save せずに compile すると前の
ファイルが compile される。つまり見えているものと compile...
違う状態になる。
終了行:
[[藤井のスタートページ]]
* はじめに [#qf404216]
Windows Program 開発のためのフリーのツールの一つとして
&ref(http://www.mingw.org/,MinGW - Minimalist GNU for Win...
がある。この文書は、それを使うためのメモである。
MinGW は Windows 版の gcc/g++ を中心とした program package
(resource compiler も用意されている(windres又はwrc))であ...
その実行環境にはいくつかの選択肢がある。例えば
- Windows のコマンドプロンプトで頑張る
- Cygwin 環境下で行う
- MSYS 環境下で行う
- Dev-C++ で行う
- &ref(http://www.eclipse.org/,Eclipse); の CDT を使う
などがある。
gcc をコマンドプロンプトで使うだけなら、PATH に MinGW の
インストール先の bin (default では C:\mingw\bin )を付け加...
なお、Windows Programming 関連については以下の別ページも...
- [[MinGWによるWindows Programming]]
- [[MinGWによる日本語Windows Programming]]
- [[MinGWによる Network Programming]]
** Windows 7 に関する追記 (2010年5月25日) [#x6c831c4]
Windows 7 で gcc/g++ をコマンドプロンプトで動かしてみた。
標準ユーザでも問題無さそうであることを確認した。
日本語(SHIFT_JISコード)ソースファイルも扱いたかったので、
gcc-core と gcc-g++ は 3.4.5-20060117-1 にした。
パッケージのバーションは
- binutils 2.20.1
- gcc-core 3.4.5-20060117-1
- gcc-g++ 3.4.5-20060117-1
- runtime-dll 3.18
- runtime-dev 3.18
- w32api-dev 3.14
を使った。いずれも tar+gzip されているものをとってきて ta...
USB メモリに展開。インストール先 Windows 7 機に管理者アカ...
ログオン。その USB を Windows 7 機に差して、\mingw フォル...
ごっそり C:\mingw に copy。その後、
- コントロールパネル
- システムとセキュリティ
- システム(右側ペインにある)
- システムの詳細設定(左側ペインにある)
と選んで「詳細設定」タブで「環境変数」を選んで、システム...
PATH に C:\mingw\bin を追加。これで完了。
g++ -finput-charset=CP932 -fexec-charset=CP932
で SHFT_JIS の日本語も大丈夫("機構" の文字列も大丈夫)。
なお、インストールしなくとも、標準ユーザで USB に置いた
まま PATH だけを通してもうまくいった。例えば、USB メモリが
ドライブ D: だとすると、コマンドプロンプトに入ったら、
SET PATH=D:\mingw\bin;%PATH%
とすればよい。
**参考リンク [#j48c20cb]
- http://www2.atwiki.jp/ccw/
* 文字コード問題 [#mea1588c]
文字コードはやっかいな問題である。WindowsNT系及びCE系は
base が Unicode (UCS-2LE)
なので、文字列 literal などは、
その文字コードで program を書きたいところだが、これが難し...
現在(2006年1月6日)gcc 3.4.2 (mingw-special) で動かして...
文字コード指定がなかなかうまくいかない。
** (26-May-2010)追記 [#f409a484]
gcc/g++ の option -finput-charset、-fexec-charset だが、
3.4.5-20060117-3 ではうまくいかない。どうも iconv が
link されていないらしい。3.4.5-20060117-1 の方はうまくい...
** Shift_JIS [#a9def330]
とりあえず、日本語を通したければ Shift_JIS で書いて、
gcc -finput-charset=CP932 -fexec-charset=CP932 infile.c
とすれば、Shift_JIS base のプログラムはできる。0x5C 問題
も無いみたいだ。
(だがなぜか、CP932 の代わりに SJIS と書いても SHIFT_JIS と
書いても MS_KANJI と書いてもうまくいかない -- iconv で受...
ものは OK のハズなんだが、、)。
** UTF-8 [#l4021273]
gcc の入力の文字コードの default は UTF-8 とのことなので、
「メモ帳」を使って、UTF-8 で保存して
gcc -fexec-charset=CP932 infile.c
としてもうまくいかない。これは、「メモ帳」が UTF-8 のファ...
あることを示すために、先頭に 0xEF 0xBB 0xBF の3バイトを付...
ためで(これは幅0のスペース文字)、この3バイトを除去して...
上記記述でうまくいく。
** _T マクロの利用 [#v4978987]
Windows programming をやったことがある人間なら知っている...
が、95系と NT系、CE系のソースを共用させる目的で _Tマクロ...
利用する。例えば
#ifdef UNICODE
#define _UNICODE
#endif
#include <windows.h>
#include <TCHAR.H>
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
{
TCHAR msg[] = _T("高エネルギー加速器研究機構の藤井です...
TCHAR title[] = _T("Hello Title");
MessageBox (NULL, msg, title, MB_OK);
return (0);
}
てな具合である(機構の構の字が問題の 0x5C を含んでいるので
こういう例題にしてある)。ここで、MessageBox関数は UNICOD...
定義されていれば WideCharacter版が、そうでなければ Single...
使われる。というわけで、UNICODE を定義して compile すれば
NT、CE系の実行イメージが、そうでなければ 95系でも使えるイ...
作られる。これを Shift_JIS で whello.c として保存したとす...
NT、CE系の実行イメージを作るには
gcc -DUNICODE -finput-charset=CP932 -fexec-charset=UCS-2...
とすればよい。
* MSYS [#l04afe7f]
MSYS は MinGW を利用するための console 型インターフェース...
で UNIX 系の script などを使えるようにする最小システムと...
提供されている。
MinGW で開発したいのだが Cygwin を install するのはどうも
大げさすぎるという場合に Cygwin の代替として使うという位...
配布は Winodows のインストール用実行イメージで行われてい...
インストールは簡単である。MinGW より先にインストールする...
推奨されているが、後からでも(多分)特に問題ない。ただし、
''絶対に MinGW の bin と MSYS の bin を混ぜてはいけない''。
MSYS には gzip や tar が含まれているので、後は必要な tar-...
取得して展開し、インストールすればよい。MinGW に必要最低...
tar-ball は
- mingw-runtime
- w32api
- binutils
- gcc
だそうである。これらは全部 MSYS とは別のフォルダ
(例えば C:\mingw とか)か MSYS 配下の mingw に
インストールする。
何度も言うが、
''間違っても MinGW の bin と MSYS の bin を混ぜてはいけな...
MSYS 配下の mingw にインストールしない場合は
/etc/fstab を作って、その中で指定しておく。
/etc/fstab の例が /etc/fstab.sample として存在しているの...
書き換えは容易である。
ここまで出来れば、MSYS の
Console で hello world 程度の実行イメージは UNIX 系の通常...
ただし、default で作られる実行イメージファイルは a.out で...
である。
* Dev-C++ [#bd6cf2ce]
MinGW を利用するためのGUIを持つIntegrated Development Env...
としては
&ref(http://www.bloodshed.net/devcpp.html,Dev-C++);がある...
フルパッケージにはMinGWやデバッガ−のGDBも含まれているらしい
(2006-01-04現在:Dev-C++ 5.0 beta 9.2 (4.9.9.2))
ので、これをインストールしてみる。
** 日本語化について [#xca8c7b6]
元の Dev-C++ は日本語が問題となる。本体もフォントの設定な...
起こす。これに対しては
&ref(http://dev-cpp-jp.sourceforge.jp/,DevC++-JPプロジェ...
で日本語対応パッケージを配布している。多国語対応の progra...
するつもりなら、こちらの方がよいかも知れない。
ただし、筆者の場合、すでに英語版としてインストールしてし...
ので、
ftp://www.cs.tohoku-gakuin.ac.jp/pub/windows/IDE/Dev-C++/...
の方法で日本語化することにする。
** Dev-C++ を使ってみて [#k7c2e18d]
少し使ってみたが、β版ということもあるだろうが、まともに使...
ちょっと今ひとつの感がぬぐえない。特にプロジェクトへの新...
ファイル名を入れた後、削除しようとしてもまともにいかない。
一度 Dev-C++ を終了して手でプロジェクトファイルを編集する...
しかも、それだけではダメで、一度プロジェクトに記載されて...
全部はずして、もう一度プロジェクトへ挿入し直さないと、正...
作られない。
また、ソースを修正した後 save せずに compile すると前の
ファイルが compile される。つまり見えているものと compile...
違う状態になる。
ページ名: