【发布时间】:2012-10-12 12:49:20
【问题描述】:
我必须将 java 代码转换为 Objective-c 代码。 在这里我必须编写以下代码并在我的终端上运行:
$ cat Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("hello, world");
}
}
$ j2objc Hello.java
translating Hello.java
Translated 1 file: 0 errors, 0 warnings
编译翻译文件:
$ j2objcc -c Hello.m
$ j2objcc -o hello Hello.o
当我在终端上运行 $ j2objcc -o hello Hello.o 时,出现以下错误。
$ j2objcc -o hello Hello.o
Undefined symbols:
"_objc_autoreleasePoolPop", referenced from:
-[JavaLangThread run] in libjre_emul.a(Thread.o)
"_objc_autoreleasePoolPush", referenced from:
-[JavaLangThread run] in libjre_emul.a(Thread.o)
ld: symbol(s) not found
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我该如何解决这个错误?
【问题讨论】:
-
好像
j2objc所在的文件夹不在你的路径中。 -
你安装的是什么版本的Xcode?span>
-
看起来错误是由clang引起的。您是否正确设置了 clang 并且可以从终端运行命令 clang?您是否尝试过以详细模式运行并查看它是否为您提供更多信息? j2objcc -v -o hello Hello.o
标签: java objective-c code-conversion