文件是为i386构建的,而不是在Mac OSX 10.6上为iOS 4.2编译OpenCV2.2时所链接的架构(x86_64)

Leo*_*lis 5 c macos gcc opencv ios

我一直在关注http://www.atinfinity.info/wiki/index.php?OpenCV/Using%20OpenCV%202.2%20on%20iOS%20SDK%204.2上的简单指南(使用旧指南我也读过在http://niw.at/articles/2009/03/14/using-opencv-on-iphone/en),以获得编译在iOS 4.2的工作OpenCV2.2.一切顺利,直到我试图建立.当我运行以下内容时:

lc:opencv_simulator leonard$ ../opencv_cmake.sh Simulator ../../OpenCV-2.2.0/
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ld: warning: in /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib/libSystem.dylib,
  file was built for i386 which is not the architecture being linked (x86_64)
Run Code Online (Sandbox Code Playgroud)

这是使用(显然在其他设置中):

-D CMAKE_OSX_ARCHITECTURES="i386"
Run Code Online (Sandbox Code Playgroud)

我在OSX 10.6上看到i386被视为默认值,因此它使用系统默认值(但是x86_64).我也读过我可以用的:

export CFLAGS=-m32
export CPPFLAGS=-m32
Run Code Online (Sandbox Code Playgroud)

但这也不起作用.

有任何想法吗?

Jer*_*myP 4

用于构建特定架构的 gcc 标志-march如下

gcc -march=i386 ...
Run Code Online (Sandbox Code Playgroud)