Как связать JRE.framework в быстрых рамках

Я создаю быстрый фреймворк с кодом ObjectiveC, который переводится j2objc.

Я добавил java файлы для компиляции исходного кода и использую следующие настройки:

GENERATED_FILES_DIR = "$ {SRCROOT} / Generated";

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 = NO

и я получил ошибку:

include "J2ObjC_header.h" >> Включение немодульного заголовка в модуле фреймворка 'XXXXX'

Затем я делаю следующее:

CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = ДА

Ошибка все еще существует.

Я связываю JRE.framework и устанавливаю HEADER_SEARCH_PATHS

Ошибка все еще существует.

Как это исправить?

1 ответ

Вы также хотите установить 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. Бросьте папки в Public раздел Headers фаза
  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>
Другие вопросы по тегам