file was built for i386 which is not the architecture being linked (x86_64) while compiling OpenCV2.2 for iOS 4.2 on Mac OSX 10.6

12,427

The gcc flag for building a specific architecture is -march as in

gcc -march=i386 ...
Share:
12,427
LeonardChallis
Author by

LeonardChallis

Senior Developer. Full-stack web development by day, app and game development hobbyist by night.

Updated on July 01, 2022

Comments

  • LeonardChallis
    LeonardChallis almost 2 years

    I have been following the simple guide at http://www.atinfinity.info/wiki/index.php?OpenCV/Using%20OpenCV%202.2%20on%20iOS%20SDK%204.2 (which uses the older guide I've also read at http://niw.at/articles/2009/03/14/using-opencv-on-iphone/en) to get OpenCV2.2 compiled to work on iOS 4.2. Everything went smoothly until I tried to build. When I run the following:

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

    I get the following error:

    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)
    

    This is using (among other settings, obviously):

    -D CMAKE_OSX_ARCHITECTURES="i386"
    

    I read that on OSX 10.6 i386 is seen as the default, so it uses the system default (but that is x86_64). I also read I could use:

    export CFLAGS=-m32
    export CPPFLAGS=-m32
    

    But this doesn't work either.

    Any ideas?