2016-05-13 7 views
0

j2objc統合プロジェクトをビルドするときに、170以上のエラーが発生しています。j2objcを使用してビルドするときに "Referenced"エラーが発生する

私はJavaのJ2REライブラリが正しく設置されており、リンクステップは

-Llib/j2objcDist/lib -Llib/j2objcDist/lib/macosx -F/Users/username/Library/Developer/Xcode/DerivedData/MyApp-dkbwtvvwogkqknfpbozsmzhgrcei/Build/Products/Debug-iphonesimulator -Flib/j2objcDist/frameworks

Errors seen when building with j2objc

私は完全なユーザーパスを含める見ているパスをたくさん言うが、上のだと思いますlib/j2objcDist/libパス。

マイライブラリ検索パスは ${PROJECT_DIR}/lib/j2objcDist/lib/

マイヘッダ検索パスです ${PROJECT_DIR}/lib/j2objcDist/include ${DERIVED_FILES_DIR} ${PROJECT_DIR}/lib/j2objcDist/frameworks/JRE.framework/Headers ${PROJECT_DIR}/lib/j2objcDist/lib

私のフレームワークの検索パスは、私が上で利用できるデモアプリケーションで設定を複製しました ${PROJECT_DIR}/lib/j2objcDist/frameworks

されていますj2objc.orgのサイトは私の知る限り最高です。

これを修正するために何を試してみるべきか、何を見なければならないかに関する提案はすばらしいでしょう。

答えて

0

ライブラリを見つける場所を正しく設定しているようですが、ライブラリを含めるようにリンカーに指示していないようです。その他のリンカフラグでは、リンカにJREエミュレーションライブラリを含めるように指示するには、 "-ljre_emul"(または "-l jre_emul")のいずれかを設定します。

これは、リストしたすべてのエラーを修正しますが、他のライブラリを使用する場合は、-lフラグを別にする必要があります。たとえば、Google Guavaクラスを使用する場合は、 "-lguava"も指定する必要があります。

リンカは、各-l引数をとり、ライブラリ名(この場合は "lib" + arg "+" .a "、またはlibjre_emul.a)に変換することでライブラリを検索し、各-Lパスこのファイルを見つけるためには、ライブラリは "ls $ {PROJECT_DIR} /lib/j2objcDist/lib/libjre_emul.a"(実際のプロジェクトディレクトリを置き換えて)にリストされている必要があります。

+0

これを他のリンカフラグに追加しました。私が欠けていた一歩は、Link Binary With Librariesセクションにjremul.aを追加することでした。 –

0

-ljre_emulフラグとそのライブラリへの有効な-Lパスを指定すると、あるJ2ObjCリリースのトランスレータと別のライブラリのライブラリを使用する可能性があります。J2ObjCはコンパイラであり、生成されたファイルは一時的なビルド成果物として扱う必要があり、プロジェクトが翻訳された.mおよび.hファイルを保存する場合は、新しいディストリビューションが使用されるたびに、すべてのJavaソースが新しい翻訳で更新してください。

関連する問題