首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Xcode (J2Objc)中使用外部构建规则?

如何在Xcode (J2Objc)中使用外部构建规则?
EN

Stack Overflow用户
提问于 2022-11-07 19:14:15
回答 1查看 29关注 0票数 0

我想使用j2objc与Xcode一起使用外部构建规则,这里在一定程度上描述了:https://developers.google.com/j2objc/guides/external-build-projects

我迄今所取得的成就:

  • 使用makefile传输java源
  • 如上述链接所述,创建外部构建项目
  • 将此生成项目添加到我希望在其中使用转置源的特定项目中。
  • 当我构建这个项目时,可以在build目录中找到转置Java/Objective源代码。
  • 在桥接头中导入已转移的源(我将使用Swift而不是本机目标-C)

不起作用的是:

  • 从我的应用程序调用类/方法,因为转置/编译的Java源(对象文件)与我的应用程序对象文件的链接不能正常工作。

因此,本质上: build目录有所需的对象文件(从Java源代码编译),但是由于这些文件没有正确链接,所以对这些方法的任何调用都会导致生成失败。

有人能提供一步一步的指南,说明如何将外部构建项目(通过makefile提供对象文件的项目)添加到Xcode项目并链接对象文件吗?

编辑:

如何添加外部构建项目:

通过目标->通用->框架下的“添加框架”,库和嵌入式内容。然后在目标->构建阶段->目标依赖项下再次添加此选项

编辑2:

在tball建议查看jre_emul项目之后,我现在有信心了,我对编译过程的了解并不像我想的那样多。*-/

我把它做好了,但在某种程度上,这并不是我所认为的方式:

  • 我必须将已编译的*.o文件作为资源添加到项目中,这样我就可以将其添加到带有二进制部分的Target->Build阶段-> Library中(我认为这很糟糕,因为对象文件只是在第一个构建之后才创建到一个具有任意名称的构建目录中。当资源破坏任何试图控制项目的源代码时,将此添加到项目中。
  • 不幸的是,在头搜索路径中添加$(TARGET_TEMP_DIR)没有任何效果。
  • 我在用户头搜索和库搜索路径中添加了$(J2OBJC_DIST)/include
  • 我不得不将$(J2OBJC_DIST) /lib /macosx路径添加到库搜索路径中,因为只有递归地添加/lib才会导致错误,说明/lib/appletvos/libjre_乳.a不兼容(这是可以的,因为我可以为不同的目标设置不同的库搜索路径。
  • 在将-ljre_emul和-liconv添加到其他链接器标志后,构建最终成功。

所以它会这样工作,但我无法想象这是正确的方式。

EN

Stack Overflow用户

发布于 2022-11-07 19:39:04

JreEmulation.xcodeproj与您的项目做同样的事情:它有一个"j2objc转换“外部构建规则,调用"make”。

如果您在Xcode中打开这个项目,您将看到规则脚本如何构建和清除目标。确保并检查主要目标jre_emul的构建设置,特别是头和用户头搜索路径。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74351764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档