2011-03-07 26 views
5

我一直在关注简单指南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。一切都很顺利,直到我试图建立。当我运行以下命令:文件是为i386而建立的,它不是被链接的架构(x86_64),同时在Mac OSX上为iOS 4.2编译OpenCV2.2 10.6

lc:opencv_simulator leonard$ ../opencv_cmake.sh Simulator ../../OpenCV-2.2.0/ 

我收到以下错误:

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) 

这是通过使用(其他设置中,很明显):

-D CMAKE_OSX_ARCHITECTURES="i386" 

我读了在OSX 10.6 i386被视为默认设置,因此它使用系统默认值(但是这是x86_64)。我也读我可以使用:

export CFLAGS=-m32 
export CPPFLAGS=-m32 

但是这也行不通。

任何想法?

回答

4

建立特定架构的GCC标志-march

gcc -march=i386 ... 
+1

或'-arch i386' – 2011-03-07 21:15:04

+0

我使用cmake - 我怎么可以强制GCC使用cmake时使用该标志? – LeonardChallis 2011-03-08 07:29:48

+0

@Leonard Challis:可能把它放在CFLAGS中,就像你用-m32所做的一样 – JeremyP 2011-03-08 13:05:47

相关问题