COINSコンパイラ・インフラストラクチャ を使って、hello.c をコンパイルしてみます。
環境が Windows XP なので、本来なら Cygwin を入れるべきなのだけれど、Cygwin を入れずに動かしてみました。
が、素直に Cygwin 入れた方が良かったかも。。。
なお、sourceforge からダウンロードした COINS はビルドせずにそのまま使っています。
ビルドする場合は、以下の作業では足りません。そもそも Cygwin 無しに COINS をビルドできるかどうか不明です。素直に Cygwin を入れた方がよさげです。。。
まず、以下のものをダウンロードします。URL およびファイル名はダウンロード時点 (2010/07 現在) のものです。
coins-1.4.4.4-ja.jar
jdk-6u21-windows-i586.exe
MinGW-5.1.6.exe
jdk-6u21-windows-i586.exe を起動してインストールします。
ここでは、「C:\Bin\jdk1.6.0_21」にインストールしました。
インストール後に、システム環境変数に以下の値を設定します。
coins-1.4.4.4-ja.jar を展開します。
ここでは、「C:\Bin\coins-1.4.4.4-ja」に展開しました。
MinGW-5.1.6.exe を起動してインストールします。
インストールオプションで、「Download and install」を選び、
インストール対象として、以下を選びました。
ここでは、「C:\Bin\MinGW」にインストールしました。
インストール後に、システム環境変数に以下の値を設定します。
以下の内容をエディタで編集し、compile.bat として適当なディレクトリに保存します。
※「-D_MT -U__MSVCRT__」は、hello.c をコンパイルしたときに、stdio.h のインクルードで問題になったので、その場しのぎで追加しました。
きちんとした解決方法は見つけていません。そのため、インクルードファイルが変わると変更する必要があると思われます。
@echo off setlocal set COINS_HOME=C:\Bin\coins-1.4.4.4-ja set GCC_HOME=C:\Bin\MinGW java -classpath %COINS_HOME%\classes coins.driver.Driver -D_MT -U__MSVCRT__ -I%GCC_HOME%\include -o %1 -coins:target=x86-cygwin,assembler=as %1.c endlocal
以下の内容をエディタで編集し、hello.c として、ラッパバッチファイルを保存したのと同じディレクトリに保存します。
#include <stdio.h> int main(void) { printf("Hello, world!"); return 0; }
コマンドプロンプトを開き、hello.c を保存したディレクトリに移動し、hello.c をコンパイルします。
compile hello
コンパイルが済んだら、実行します。
バッチファイルなど
sample.zip (479 バイト)