2007-07-22

クロスコンパイル

近は Cygwin の gcc に -mno-cygwin オプションを付けて Tcl/Tk のソースをコンパイルしてきましたが、ダウンロードするリソースを一箇所に集約したいので、Linux 上で Windows のバイナリをクロスコンパイルするやりかたに移行しようと考えています。

と言うわけで、久しく触れていなかった MinGW の クロスコンパイラ版を整備しました。これらの RPM パッケージの公開については、需要があれば対応したいと思います(こういう需要はあるのでしょか?)。ちなみに Linux は Fedora 7 を使っています。

参考までに、現在の MinGW クロスコンパイル環境は以下の通りです。

mingw-runtime-3.12-1
mingw-gcc-core-3.4.5-15
mingw-binutils-2.17.50-12
mingw-w32api-3.9-1

この場を借りて、bitWalk で以前公開していた MinGW クロスコンパイラの RPM をメンテナンスし続けていただいた Hans Leidekker 氏に感謝いたします。と言っても日本語では通じないですね。

Hans Leidekker 氏の MinGW クロスコンパイラのサイトを以下に示しました。

MinGW RPM packages

Fedora 7 用のパッケージも公開されていましたが、リビルドするには若干の修正が必要でした。

なお、Tcl/Tk の Windows 版のコンパイルでは一部 MS-DOS コマンドを使用しているので、Linux 上では wine を利用しています。幸いなことに Fedora 7 では wine のパッケージが供給されているので、それを使っています。

現在、クロスコンパイルが成功しているのは、以下の基本パッケージです。

Tcl/Tk8.5a6
thread2.6.5
(tcllib-1.9) コンパイルは不要

インストーラのコンパイルは Inno Setup Compiler を使用していますので、これを wine で動かして Windows 版 Tcl/Tk のインストーラパッケージを Linux 上でコンパイルできるようにした後、次の Windows 版 Tcl/Tk を公開します。

2 件のコメント:

匿名 さんのコメント...

今、久しぶりにネット上を調べていました。 以前に、Linux上でC言語からTcl/Tkコマンドを呼び出すソフトを作成しようと調べていました。 一応簡単なプログラムはコンパイルできるようになったのですが、同じソースを使ってWindows版の.exeファイルをLinux上でコンパイルできるようにと、クロスコンパイル環境を整備し始めたのですが、どうしたらよいのか壁にぶつかり(2ヶ月前だったか、、、)止まっていました。Fedoraで今回公開のとおりにまずはやってみようとおもいます。期待していますので、お忙しいでしょうが、整備方法等の情報公開を、ぜひ、是非、お願いします。期待しております。

bitWalk さんのコメント...

koji さん、コメントをありがとうございます。クロスコンパイル環境の構築方法については、時間をみてまとめていきたいと思います。