【问题标题】: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文件是为 i386 构建的,它不是在 Mac OSX 10.6 上为 iOS 4.2 编译 OpenCV2.2 时链接的架构 (x86_64)
【发布时间】:2011-07-10 09:03:46
【问题描述】:

我一直在遵循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 阅读过的旧指南)来编译 OpenCV2.2 以在 iOS 4.2 上运行。在我尝试构建之前,一切都很顺利。当我运行以下命令时:

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

但这也不起作用。

有什么想法吗?

【问题讨论】:

    标签: c ios macos gcc opencv


    【解决方案1】:

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

    gcc -march=i386 ...
    

    【讨论】:

    • 我正在使用 cmake - 如何在使用 cmake 时强制 gcc 使用该标志?
    • @Leonard Challis:可能像你对 -m32 所做的那样把它放在 CFLAGS 中
    猜你喜欢
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    相关资源
    最近更新 更多