Cygwin GCJを試す。

GCJがうまく動かなかったのでメモしておきます。

まずはソース。Hello.java

public class Hello {
	public static void main(String args[]) {
		System.out.println("Hello,GCJ World!!");
	}
}

gccコンパイルしてみました。

$ gcc Hello.java
/cygdrive/c/DOCUME~1/tanaka/LOCALS~1/Temp/ccMgMOn2.o:Hello.java:(.text+0x8): und
efined reference to `java::lang::System::class$'
いろいろ〜

gccではパスがうまく解決しなかった。ではgcjコンパイル

$ gcj Hello.java
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find
 -liconv
collect2: ld returned 1 exit status

今度は、libconvが無いって怒られました。cygwinインストーラーでlibconvをインストール。

$ gcj Hello.java
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libcygwin.a(libcmain.o):(.text+0xab):
 undefined reference to `_WinMain@16'
collect2: ld returned 1 exit status

う〜メインが見つからないって怒られた。

$ gcj --main=Hello Hello.java

$ ./a
Hello,GCJ World!!

うまくいきました。exeファイルが生成できます。