0

私は何日もグーグルして問題を解決しようとしてきましたが、運が悪かったので、ここで最初の質問をします。

私はLion(1.7.4)、Xcode4を搭載したMacBookを持っています。LeopardとXcode3で作成されたC++アプリケーションで作業する必要があります。

このアプリケーションには独自のOpenCV.frameworkが付属しており、32ビットアーキテクチャ用に作成されています(図1を参照)。

図1:XcodeプロジェクトでリンクされたOpenCV.framework

Xcode 3で動作させようとしましたが、正常に動作し、OpenCVなどをインストールする必要はありません(つまり、OpenCV.frameworkがプロジェクトに含まれているからですよね?)。

Xcode4では機能しません。それが私が試したことです:

  • 「そのまま」実行します。OpenCV.frameworkがアプリケーションディレクトリにある場合でも、次のエラーが発生します。

dyld:ライブラリがロードされていません:@ executeable_path / .. / Frameworks / OpenCV.framework / Versions / A / OpenCV
参照元:/ Users / fabrizioborgia / Library / Developer / Xcode / DerivedData / suiviGUI-awhilvjpoqatfdansnpqcexpnxaw / Build / Products / Debug / suiviGUI .app / Contents / MacOS / suiviGUI理由:画像が見つかりません

  • OpenCV.frameworkを削除し、MacPorts経由でOpenCVをインストールして、ライブラリをリンクします。いいえ、ライブラリは64ビットで、私のプログラムは32です。OpenCVとMacPortsを削除しました。

  • OpenCV.frameworkを削除し、 Homebrew経由で32ビットOpenCVをインストールし(brew install opencv --build32)、ライブラリをリンクします。いいえ、次のエラーが発生するので、ライブラリはまだ64ビットであると思います。右?OpenCVとHomebrewを削除しました。

ld:警告:ファイル/usr/local/Cellar/opencv/2.4.1/lib/libopencv_calib3d.2.4.1.dylibを無視します。ファイルは、リンクされているアーキテクチャではないサポートされていないファイル形式用にビルドされました(i386)

  • OpenCV.frameworkを削除し、OpenCV 2.4.1を自分で(makeなどを使用して)インストールし、プロジェクト内のライブラリをリンクします。いいえ、32ビットアーチでプログラムを実行すると、ライブラリが32ビットアーチ用ではないことがわかります。

いずれにせよ、64ビットで実行しようとすると、コンパイルは成功しますが、プログラムは正しく機能しません。

みんな、本当に、私はアイデアがありません、多分私は間違った方向にいます、多分私はただ別のOpenCV.frameworkを見つけなければならないか、私が欠けているいくつかのリンク設定があります、そしてプログラムはフレームワーク。

誰でも助けることができますか?

4

2 に答える 2

1

問題を解決しました。私はある種の「分割統治アプローチ」を適用し、SOで新しい質問をしました。ここで見つけることができます:OS X Lionの32ビットOpenCV?可能?MacPorts AND Homebrew AND Cmake Approachは、デフォルトでネイティブアーキテクチャ(私の場合は64ビット)のOpenCVライブラリをインストールすることがわかりました。32ビットが必要だったので、次の手順に従いました。

ステップ1:OpenCV2.4.0をダウンロードする

ステップ2:CMakeをダウンロードしてインストールします。

ステップ3:OpenCVパッケージを解凍します。

ステップ4:OpenCVパッケージ内にビルド用の別のディレクトリを作成します

mkdir build
cd build
cmake -G "Unix Makefiles" -D CMAKE_OSX_ARCHITECTURES=i386 -D CMAKE_C_FLAGS=-m32 -D CMAKE_CXX_FLAGS=-m32 ..

(これにより、32ビットコンパイルが強制されます)

make -j8
sudo make install

ステップ5:「バイナリをライブラリにリンク」ビルドフェーズを使用して、Xcodeプロジェクトの新しいライブラリをリンクします。

ステップ6:「実行」を押します:)

于 2012-06-27T19:16:10.197 に答える
0

XCode 4(チュートリアル)を使用して、LionでOpenCVを(まだ機能していない場合は)動作させることをお勧めします。リンクされたチュートリアルの例でテストしてください。それが機能したら、プロジェクトから必要なクラスをコピーして、機能させることができなくなります。

つまり、古いプロジェクトを破棄し、作業中のプロジェクトベースから再構築します。

于 2012-06-27T19:07:03.930 に答える