我使用 gcj(Cygwin 版本)编译 2 个 java 文件
$ gcj --version gcj (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) 版权所有 (C) 2004 Free Software Foundation, Inc. 这是免费软件;查看复制条件的来源。没有保修;甚至不考虑适销性或特定用途的适用性。
这是我的 2 个 java 文件:
$ cat MyClass.java
public class MyClass {
public MyClass() {
System.out.println("Hello, MyClass");
}
}
$猫HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
MyClass myclass = new MyClass();
System.out.println("Hello, World");
}
}
我可以在 HelloWorld 中执行代码
$ gcj.exe -o hello --main=HelloWorld --classpath=. HelloWorld.java MyClass.java
我想单独编译它们
gcj.exe -C MyClass.java
然后
gcj.exe --main=HelloWorld --classpath=. HelloWorld.java
问题是我得到
/tmp/ccKwa7F4.o: In function '_ZN10HelloWorld4mainEP6JArrayIPN4java4lang6StringEE':
/home/lucm/HelloWorld.java:3: undefined reference to `MyClass::class$'
/home/lucm/HelloWorld.java:3: undefined reference to `MyClass::MyClass()'
collect2: ld returned 1 exit status