java undefined引用`main'colle2:ld返回1退出状态

时间:2013-11-14 14:00:30

标签: java linux

编译java文件时遇到问题。 我的编译命令:javac -g HelloWorld.java

我写了一个简单的hello world程序:

public class HelloWorld {

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

}

我正在使用putty,而我正在与ssh建立联系。我收到了这个错误:

/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../lib64/crt1.o: In function `_start':
/home/abuild/rpmbuild/BUILD/glibc-2.14.1/csu/../sysdeps/x86_64/elf/start.S:109: undefined reference to `main'
collect2: ld returned 1 exit status

1 个答案:

答案 0 :(得分:3)

正如我所看到的,您使用的是gcc javac编译器,它不能用作SUN / Oracle实现。

我想你需要在命令中添加--main=HelloWorld。由于几个类可能具有“主”方法,因此需要告知链接器使用哪个。

此外,您可能想要添加-o,否则,您将获得一个'a.out'文件,这是GNU编译器(以及任何实际的C编译器)的默认可执行文件名。

希望这有帮助!