gpt4 book ai didi

ios - 如何在swift框架中链接JRE.framework

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

我使用由 j2objc 翻译的 ObjectiveC 代码创建了一个 swift 框架。

我已经添加了java文件来编译源代码,并使用以下设置:

GENERATED_FILES_DIR = "${SRCROOT}/生成";

HEADER_SEARCH_PATHS = "${J2OBJC_HOME}/frameworks/JRE.framework/Headers""${GENERATED_FILES_DIR}""${J2OBJC_HOME}/include"$(继承);

LIBRARY_SEARCH_PATHS = ${J2OBJC_HOME}/lib;

OTHER_LDFLAGS = -ljre_emul

CLANG_ENABLE_OBJC_ARC = 否

我得到了错误:

include "J2ObjC_header.h">> 在框架模块“XXXXX”内包含非模块化 header

然后我执行以下操作:

CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = 是

错误仍然存​​在。

我链接“JRE.framework”并设置 HEADER_SEARCH_PATHS

错误仍然存​​在。

如何解决?

最佳答案

您还想设置 DEFINES_MODULE = NO;

除此之外,您不需要 "${J2OBJC_HOME}/include"HEADER_SEARCH_PATHS您还可以删除 LIBRARY_SEARCH_PATHS = ${J2OBJC_HOME}/lib; OTHER_LDFLAGS = -ljre_emul;因为您现在使用的是 JRE 框架。

如果您要翻译 .java没有 --no-package-directories 的来源标志并且您想保留目录结构,那么您还需要执行以下操作:

  1. 将生成的文件添加为 Xcode 中的文件夹引用
  2. 将它们从 Copy Bundle Resources 中删除阶段
  3. 将文件夹拖放到 PublicHeaders 部分阶段
  4. 添加新的Run Scrip阶段删除 .m来自Headers的文件目录: find "$TARGET_BUILD_DIR/$PUBLIC_HEADERS_FOLDER_PATH" -name "*.m" -exec rm -f {} \;
  5. 现在您可以使用 #include <your-framework-name/path/to/header/Header.h> 在您的伞式标题中引用它们

关于ios - 如何在swift框架中链接JRE.framework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37825303/

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