0

xcodebuild を使用して iOS プロジェクトをコンパイルしようとしています。プロジェクトは XCode GUI 経由で正常にビルドされます。ただし、ビルドは xcodebuild で失敗します。

問題は、プロジェクトに libiconv.dylib が必要であり、xcodebuild がそれを間違ったライブラリの場所にリンクしていることです。x86 バージョンを含む /sw/lib/ でライブラリを探し、XCode 内に含まれる armv7/6 バージョンにリンクしないように。

私の質問は、Ld に /sw/lib/????? ではなく SDK ディレクトリを調べるように指示するにはどうすればよいかということです。

ビルドコマンドは次のとおりです。

xcodebuild -project MyProject.xcodeproj -target "release_iphone" -configuration Release -sdk "iphoneos7.0" PROVISIONING_PROFILE="${PROJ_PROF_UUID}"

そして、ここに私が受け取るエラーがあります:

ld: warning: ignoring file /sw/lib//libiconv.dylib, file was built for x86_64 which is not the architecture being linked (armv7s): /sw/lib//libiconv.dylib
Undefined symbols for architecture armv7s:
  "_iconv_open", referenced from:
      l2451 in libscanditsdk-iphone-3.1.1.a(mirasense.o)
  "_iconv", referenced from:
      l2451 in libscanditsdk-iphone-3.1.1.a(mirasense.o)
  "_iconv_close", referenced from:
      l2451 in libscanditsdk-iphone-3.1.1.a(mirasense.o)
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

私が試したこと:

  • ワークスペース/スキームとプロジェクト/ターゲット
  • libiconv.dylib を「Link Binary with Libraries」に再追加
  • SDKディレクトリを「ライブラリ検索パス」に追加
  • 「その他のリンカー フラグ」に「-isysroot $SDKROOT」を追加
4

2 に答える 2

2

エラーには 2 つの理由が考えられます。ビルド設定 (検索) で 1) ビルド オプション - コンパイラ C/C++/objective C が正しく機能しているか、サポート オプションがないこと

2) 検索パス - フレームワーク、ヘッダー、ライブラリ検索パスには、sdk の正しいパスがあります。

これら2つはios7とxcode 5以降の一般的な問題であるため、最初のポイントはあなたの問題にとってより信頼できるようです

于 2013-10-21T14:54:43.233 に答える