gpt4 book ai didi

java - j2objc Xcode 构建规则,不识别导入

转载 作者:行者123 更新时间:2023-11-30 08:11:04 24 4
gpt4 key购买 nike

我正在使用 j2objc 在 iOS 中编译和使用 java 库。我遵循了流程:

  1. http://j2objc.org/docs/Xcode-Build-Rules.html
  2. http://j2objc.org/docs/Required-Link-Flags.html

在我开始导入头文件以使用它们之前,我没有收到任何构建错误:

#import "org/library/Class.h"

找不到文件。我缺少什么?

另一方面,我尝试使用手动翻译的库文件(使用终端 j2objc 命令)。如果我将 .h 和 .m 文件放入 j2objc-dist/include 文件夹中,它们将被编辑器识别,并且我可以使用这些类而不会出现编译错误。但是,当我尝试构建项目时,它发现了 _OBJ_CLASS_$_Java 类型的错误。我尝试将文件包含到 Xcode 的编译列表中,并验证了 libjre_emul.a 的路径,但我仍然收到错误。

我的库包含包,因此它在树中有多个文件夹。我的偏好是使用第一种方法(原始 Java 源代码)

JAVA 源数据案例:

  • 构建规则:

Java 源文件自定义脚本:

/Users/xgibert/Desktop/Orekit_iOS/j2objc-dist/j2objc -d ${DERIVED_FILES_DIR} -sourcepath ${PROJECT_DIR}/src/ ** \ --no-package-directories ${INPUT_FILE_PATH};

输出文件:

${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.h
${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.m
  • 构建阶段

将二进制文件与库链接:

libicucore.dylib
Security.framework
libz.dylib
  • build设置

链接 - 其他链接器标志:

-ljre_emul -L /Users/xgibert/Desktop/Orekit_iOS/j2objc-dist/lib -force_load /Users/xgibert/Desktop/Orekit_iOS/j2objc-dist/lib/libjre_emul.a -l jre_emul -ObjC

搜索路径 - 图书馆搜索路径:

/Users/xgibert/Desktop/Orekit_iOS/j2objc-dist/lib

搜索路径 - 用户 header 搜索路径:

/Users/xgibert/Desktop/Orekit_iOS/j2objc-dist/include

我的 java 库文件在 Project_root/src 中。这棵树看起来像这样:

root/
src/
org/
orekit/
data/
time/
...
apache/
...

在我的 ViewController.m 文件中,我尝试使用以下行导入但没有成功(找不到文件):

#import "org/orekit/data/DataProvidersManager.h"

最佳答案

Xcode 假定所有源都在顶级目录中,因此您描述的导入失败。如 Xcode-Build-Rules 中所述页面,需要 --no-package-directories 标志,因为它将所有生成的文件输出到没有子目录的指定构建目录,并生成正确的#import 指令。

演示将 Java 源代码包含在包中的示例项目是 j2objc-sample-reversi .它的用户界面很烂(我写的,叹气),但游戏引擎还不错;如果你需要一个更强大的对手,请提高引擎强度here .

关于java - j2objc Xcode 构建规则,不识别导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31292238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com