0

Objective-C++ で Xcode を使用して iOS アプリを開発しようとしています (したがって、.m、.mm、および .cpp ファイルを使用します)。.cpp ファイルは、サード パーティのライブラリ (OpenCV) を使用します。

リンク時にビルドが失敗し、次のような警告が表示されます (未定義の参照エラーにつながります)。

ld: warning: ignoring file /opt/local/lib/libopencv_calib3d.dylib,
file was built for unsupported file format
( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 )
which is not the architecture being linked (i386): 
/opt/local/lib/libopencv_calib3d.dylib

私のアーチはi386です。

Xcode が次のコマンドを実行したことをビルド ログで確認できます。

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch i386 ...

関連しているかどうかはわかりませんがllvm-g++ --version、ターミナルに入力すると、次のようになります。

i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)

すべてを同じアーキテクチャ上に構築するにはどうすればよいですか?

4

1 に答える 1

0

私は最終的に、使用していたものとまったく同じ OpenCV ライブラリに出くわしましたが、適切なアーキテクチャ (i386) を備えていました。これは、この Github リポジトリ内でフレームワークとして提供されました。

すべてが同じアーキテクチャでビルドされたため、Xcode はビルド プロセス全体を完了することができます。:D

于 2013-07-16T07:51:15.780 に答える