2012年8月13日月曜日

ubuntu 12.04 64bitでWin32をクロスコンパイル4

ubuntu 12.04 64bitでWin32をクロスコンパイル3 のつづき


そこでつぎに Qtのmingw 64bit版を用意することにした。

http://www.robwork.dk/jrobwork/index.php?option=com_content&view=article&id=71:installation-of-qt&catid=44:installation&Itemid=67&limitstart=2

基本的にはこのサイトのとおりにすればできた。
LINUXでクロスコンパイルしてみてもいいけど面倒なのでWindows7 64bit で行った。

まずmingw-w64を sourceforgeからダウンロードする。
http://sourceforge.net/projects/mingw-w64/files/
一番上のダウンロードを選ぶとソースが落ちてくるがgccのソースビルドなんてやってられないのでバイナリを直接ダウンロード
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/sezero_4.5_20111101/mingw-w64-bin_x86_64-mingw_20111101_sezero.zip/download
これを解凍して /mingw64/bin にパスを通す。

次にPerlを用意。これはAcitivePerlがいいらしいのでこれをインストール
http://www.activestate.com/activeperl/downloads/thank-you?dl=http://downloads.activestate.com/ActivePerl/releases/5.14.2.1402/ActivePerl-5.14.2.1402-MSWin32-x64-295342.msi
デフォルトでインストールするとパスが通ると思います。

で環境が整ったので次にQtのソース

まずhttp://qt.nokia.com/downloads から
http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-4.8.2.tar.gz をダウンロードして展開

でコマンドラインを起動して展開した場所に移動し
 configure -opensource -no-sql-sqlite -no-qt3support -no-webkit -no-scripttools -fast -platform win32-g++
を実行。

成功すると次に
mingw32-make
をするようにいわれるのでいわれるとおりに実行

うまく行けば完了して*.dll、*.exe、*.aができます。
Qtのプロジェクトをコンパイルすればできるはずです。QtCreatorとかないのがあれですが

これをそのまま圧縮してubuntuに持ってきます。
解凍後qt-everywhere-opensource-src-4.8.1/bin で
 cp /usr/lib/gcc/x86_64-w64-mingw32/4.6/libgcc_s_sjlj-1.dll .
 cp /usr/lib/gcc/x86_64-w64-mingw32/4.6/libstdc++-6.dll  .
で2ファイル補うと
qtdemo.exe がwine 64bit で動きます。と行ってもプロジェクトがないので起動するだけですが。
とりあえず64bitのビルドが成功したのがわかります。



これと同じ事をmkspecをいじればUbuntuでもできるとおもうが、そこまでこだわる気力がない。



0 件のコメント:

コメントを投稿