2009-07-07 14 views
7

私は、OpenCVライブラリに大きく依存するiPhoneアプリを持っています。私はこのライブラリの静的なバージョンをコンパイルして、私のアプリケーションに含めました。これを行う手順は比較的簡単です:Using OpenCV on iPhone。私が遭遇した唯一の問題は、リンカーフラグSTANDARD_C_PLUS_PLUS_LIBRARY_TYPEを "standard"に設定していたことです。このアプリは、OS 2.0と2.2で完全にコンパイルされ、実行されました。iPhone SDK 3.0の静的ライブラリのリンク

SDK 3.0にアップグレードしてアプリケーションを再コンパイルすると、このリンカフラグの問題が発生しています。

LD: - 静的

それは私のシステム上で、「のlibstdC++ - 静的な」ということも興味深い一見すべてのiPhoneOSとiPhoneSimulatorの下に存在している-lstdC++見つかりませんライブラリをリンクしながら、私はこのエラーを取得していますiPhoneOS.platform/SDKs/iPhoneOS3.0.skを除くSDK。検索結果は次のとおりです。

$ locate libstdc++-static 
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.0.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.1.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.1.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/lib/libstdc++-static.a 
/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libstdc++-static.a 
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libstdc++-static.a 
/usr/lib/libstdc++-static.a 

私はかなり困惑し、GoogleやiPhoneの開発者フォーラムで回答を見つけることができませんでした。誰かがここで光を放つことができたら本当に感謝しています。

ありがとうございます!

+0

libstdC++のバージョンはOS 3.xにありますか? –

答えて

1

ビルドプロパティの[ライブラリ検索パス]オプションにディレクトリの1つを追加してみてください。

+0

これはうまくいった!ありがとう!私は古いSDKからファイルをコピーしようとしていましたが、それは動作しませんでした(ただし、ディレクトリを再スキャンするために 'ldconfig'と同等のことをする必要があるかどうかはわかりません。 ) – pix0r

+0

素晴らしい!最初にLD_LIBRARY_PATHについて考え始めたのですが、それはおそらくプロパティ内にあると考えました。 – John

0

本当に困惑しているのは、/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdkがあなたの図書館の検索パスに含まれていないことだけですが、それはほとんど起こりそうにありません。

+0

シミュレータではなく、iPhoneOS用にコンパイルしようとしていました。それは両方のために働く必要があります。 – pix0r

+0

あなたは正しいです、それはちょうど私の後ろに滑っていた、どこにiphoneのライブラリですか?それはあなたのリストに表示されません.... – hhafez

+0

それは問題だった;)それはAppleがSDK 3.0でそれを残したように思える - たぶん間違い。ライブラリの2.2バージョンは3.0でうまく動作することが判明しました。 – pix0r

関連する問題