tdm-gccのMinGW64環境を作成してみた
注意!MinGW64はもう古い!、msys2へ今すぐアクセスだ!
Windowsでgccなどを利用できるMSYS2の環境設定など - Qiita
2014年12月現在
msys2はpacmanというArch Linuxのパッケージ管理システムをWindowsに移植。Linuxのyumやapt-getのごとく、様々なパッケージを取得し放題の神環境となっています。
pacmanからmingw32,mingw64環境が両方構築できます。ビルドの必要もありません!
今からmsys使うなら間違いなくmsys2使った方がよいです。それでもMinGW64使いたいのであれば下の記事をご覧ください…
1.tdm64-gcc-4.7.1 の導入
ダウンロード先は以下
TDM-GCC : Download
Bundle Installerで64bit用の環境をダウンロード。
今までのMinGW32環境と混じると地獄を見ることになるので、パッケージは C:/MinGW64 以下に配置する。
2.msysをインストール
MinGW64のWikiにmsysの紹介があるので、それを使う
MinGW-w64 - for 32 and 64 bit Windows | SourceForge.net
MinGW-w64 - for 32 and 64 bit Windows - Browse /External binary packages (Win64 hosted)/MSYS (32-bit) at SourceForge.net
MSYS-20111123.zipを /c/MinGW64/msys/1.0/ 以下に展開する
msys.batは「--mintty」オプション付きで起動すれば、minttyで使えるのでそうした方がいい。
3.msysのオプションを設定しておく。
日本語の表示と入力を可能にします。
.inputrcのline.16あたり
# disable/enable 8bit input #set meta-flag on #set input-meta on #set output-meta off #set convert-meta on set meta-flag on set kanji-code sjis set input-meta on set output-meta on set convert-meta off
.profile
パスの設定:システム環境設定と混じらないようにするために必要。お好みで設定しておく。
pythonとかJavaとか設定しておくと捗ります。
JAVA_HOME='/C/Program Files/Java/jdk1.6.0_25' VIMRUNTIME=/usr/share/vim/vim73 SCALA_HOME='/c/scala-2.9.1.final' alias ls='ls --color=auto --show-control-chars' alias ll='ls -l' alias l='ls -CF' alias ant='/c/apache-ant-1.8.0/bin/ant' alias python='/c/Python27/python' alias emacs='/c/emacs-23.4/bin/emacs.exe' alias cmake='cmake.exe' alias git='git.exe' alias svn='svn.exe' alias perl='/perl/perl.exe' PATH=.:/mingw/bin:/usr/bin:/usr/local/bin:/c/MinGW64/msys/bin/:/c/Python27:$JAVA_HOME/bin:/c/clisp-2.49/:$SCALA_HOME/bin:$SCALA_HOME/lib:/c/play-2.0.2/play:/c/apache-ant-1.8.0/bin:$CMAKE_HOME/bin PATH=$PATH:/c/Program\ Files\ \(x86\)/Git/bin/:/c/Program\ Files\ \(x86\)/CMake\ 2.8/bin/:/c/Program\ Files\ \(x86\)/SlikSvn/bin/
.vimrc
とりあえず使えればいいよという設定
syntax on set nobackup set encoding=utf-8 set fileencodings=ucs-bom,iso-2022-jp-3,iso-2022-jp,eucjp-ms,euc-jisx0213,euc-jp,sjis,cp932,utf-8 set number set incsearch set ignorecase set nohlsearch set showmatch set showmode set backspace=2 set title set ruler set shiftwidth=4 set autoindent
.minttyrc
これは完全に某氏のパクリですね。見やすいのでずっと使ってます。
BoldAsFont=no Transparency=high Font=Osaka−等幅 FontHeight=14 Locale=ja_JP Charset=UTF-8 Columns=120 Rows=33 Black=0,0,0 Red=255,100,0 Green=183,234,17 Yellow=234,206,28 Blue=107,155,219 Magenta=237,157,185 Cyan=0,191,191 White=255,255,255 BoldBlack=64,64,64 BoldRed=255,100,0 BoldGreen=183,234,17 BoldYellow=234,206,28 BoldBlue=107,155,219 BoldMagenta=237,157,185 BoldCyan=64,255,255 BoldWhite=255,255,25
/etc/fstab
/etc/fstab の本当の場所は C:\MinGW64\msys\1.0\etc 以下になります。
以下のようにマウントの設定をしてやることで、C:/MinGW64以下が/mingwで参照できます。
c:/MinGW64 /mingw c:/strawberry/perl /perl
4.wxWidgetsのビルド
やっとここまでこぎつけます。
$ cd /usr/local/src $ tar xvf wxWidgets-2.9.4.tar.bz2 $ cd wxWidgets-2.9.4 # configureの設定についてはhostがx86_64-w64-mingw32であることを示せば # 自動的に64bit版ビルドできると思います。さすがAutotoolやで。 $ ./configure --host=x86_64-w64-mingw32 --prefix=/mingw $ make $ make install
5.注意点
・出来上がった64bit版ライブラリでちゃんとmakeするためには…
1./c/MinGW64/include/wx/msw 以下の wx.manifestをamd64.manifestの内容で書き換え
→ これをやってないとアプリがちゃんとビルドできていても、32bit/64bitの違いの問題で異常終了する
Thanks! http://teminian.tumblr.com/post/15751322422
2.今までのMinGWの環境と混ざらないようにすること
→ makeの際、include先が32bitのビルドのものを参照していると全然ビルドできませんので注意
6.できあがり
出来上がったアプリのプロセスを見るとWOW64によるエミュレートが行われていないことが確認できる。
(なんかメモリの使用量が高い気がするけどどういうことなんだろう??)