0

j2objc 統合プロジェクトをビルドするときに、170 以上の多くのエラーが表示されます。

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

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 サイトで入手できるデモ アプリの設定を複製しました。

何を試すべきか、これを修正するためにどこを探すべきかについての提案は素晴らしいでしょう.

4

2 に答える 2

0

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

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

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

于 2016-05-13T14:15:48.763 に答える