なんとな~くしあわせ?の日記

ClojureとかAWSの設定とかをメモする技術ブログ

MinGW64環境の構築手順とwxのビルド

tdm-gccのMinGW64環境を作成してみた

注意!MinGW64はもう古い!、msys2へ今すぐアクセスだ!


Windowsでgccなどを利用できるMSYS2の環境設定など - Qiita

2014年12月現在
msys2はpacmanというArch Linuxのパッケージ管理システムをWindowsに移植。Linuxyumや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によるエミュレートが行われていないことが確認できる。
(なんかメモリの使用量が高い気がするけどどういうことなんだろう??)

f:id:panzer-jagdironscrap1:20130113142640j:plain