0

j2objc で変換された ObjectiveC コードを使用して迅速なフレームワークを作成します。

ソースをコンパイルするために 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' 内の非モジュラー ヘッダーのインクルード

次に、次のことを行います。

CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = はい

エラーはまだ存在します。

「JRE.framework」をリンクし、HEADER_SEARCH_PATHS を設定します

エラーはまだ存在します。

修正方法は?

4

1 に答える 1

0

あなたも設定したいDEFINES_MODULE = NO;

"${J2OBJC_HOME}/include"その上、 inは必要ありません。また、現在 JRE フレームワークを使用しているため、HEADER_SEARCH_PATHS削除することもできます。LIBRARY_SEARCH_PATHS = ${J2OBJC_HOME}/lib; OTHER_LDFLAGS = -ljre_emul;

.javaフラグなしでソースを翻訳して--no-package-directoriesいて、ディレクトリ構造を保持したい場合は、次のことも行います。

  1. 生成されたファイルを Xcode のフォルダー参照として追加します。
  2. Copy Bundle Resourcesそれらをフェーズから削除します
  3. フェーズPublicのセクションにフォルダーをドロップしますHeaders
  4. ディレクトリ からファイルRun Scripを削除する新しいフェーズを追加します。.mHeadersfind "$TARGET_BUILD_DIR/$PUBLIC_HEADERS_FOLDER_PATH" -name "*.m" -exec rm -f {} \;
  5. これで、以下を使用してアンブレラ ヘッダーでそれらを参照できます。#include <your-framework-name/path/to/header/Header.h>
于 2016-07-22T12:16:32.413 に答える