を使用して、Lion を実行している Macbook で OpenCV の i386 フレーバーをローカルにビルドしました。
cmake -G "Unix Makefiles" -D CMAKE_OSX_ARCHITECTURES=i386 -D CMAKE_C_FLAGS=-m32 -D CMAKE_CXX_FLAGS=-m32 ..
make -j8
sudo make install
ライブラリは正常にビルドおよび公開され、xcode プロジェクトに追加しました。ただし、テスト アプリのビルド時にリンク エラーが発生し、名前マングリングの問題のようです。
Undefined symbols for architecture i386:
"cv::namedWindow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)", referenced from:
_main in main.o
"cv::imread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)", referenced from:
_main in main.o
"cv::imshow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cv::_InputArray const&)", referenced from:
_main in main.o
cv::imread を例にとると、libopencv_highgui.dylib から次の名前でエクスポートされます。
00007510 (__TEXT,__text) external __ZN2cv6imreadERKSsi
main.o がシンボルを参照している間
U __ZN2cv6imreadERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEi
一方、__ZN2cv7waitKeyEi
同じ dylib リンクからの関数は問題ありません。
テスト アプリとフレームワークの両方が i386 arch 用です。
この問題を引き起こしている可能性のあるアイデアはありますか?