j2objc:找不到命令

时间:2012-10-12 12:49:21

标签: java objective-c code-conversion

我必须将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)

如何解决此错误?

2 个答案:

答案 0 :(得分:2)

您需要添加解压缩j2objc分发包的位置的路径。例如:

$ cd $HOME
$ unzip ~/Downloads/j2objc-*.zip
$ export PATH=${PATH}:${HOME}/j2objc

注意:上面的导出命令需要添加到$ {HOME} / .bashrc文件中,以便在您注销并重新登录时进行设置。

答案 1 :(得分:1)

您评论您正在使用XCode 3.2.6。目前,J2ObjC似乎需要 XCode 4 +

参考:https://code.google.com/p/j2objc/