OpenCV - 文件是为不支持的文件格式构建的,而不是链接的体系结构(i386)

时间:2013-02-19 15:16:00

标签: xcode opencv

我按照本教程:http://tilomitra.com/opencv-on-mac-osx/为Mac OSX编译OpenCV,以便在XCode 3.2.3中使用它

编译openCV时没有错误。但是在XCode中,我为每个dylib获取file was built for unsupported file format which is not the architecture being linked (i386),之后找不到符号。

有任何线索吗?

1 个答案:

答案 0 :(得分:0)

使用cmake 2.8.10和xcode 4.6.1在mac os x lion 10.7.5上编译和运行c ++ opencv 2.4.4的步骤

拥有合适的工具

  1. http://sourceforge.net/projects/opencvlibrary/files/下载opencv-unix并在任何地方解压缩
  2. http://www.cmake.org/cmake/resources/software.html下载cmake .dmg并安装
  3. 我假设你在os x lion上有xcode 4.6,其中包括ios sdk 6.1
  4. 转到xcode首选项以下载并安装命令行工具,以便您使用g ++等。
  5. 使用cmake编译opencv

    1. 转到解压缩的opencv文件夹
    2. 创建构建目录

      mkdir build
      cd build
      cmake -D WITH_TBB=OFF -D BUILD_NEW_PYTHON_SUPPORT=OFF -D BUILD_FAT_JAVA_LIB=OFF -D BUILD_TBB=OFF -D BUILD_EXAMPLES=ON -D CMAKE_CXX_COMPILER=g++ CMAKE_CC_COMPILER=gcc -D CMAKE_OSX_ARCHITECTURES=x86_64 -D BUILD_opencv_java=OFF -G "Unix Makefiles" ..
      make -j8
      sudo make install
      
    3. 从构建文件夹
    4. 转到bin /并运行其中一个测试

      ./opencv_test_stitching
      
    5. 创建自己的c ++ opencv xcode项目

      1. 启动xcode并创建一个新的xcode项目
      2. 为os x
      3. 下的项目类型选择命令行工具
      4. 打开项目的构建设置
      5. 在架构下,将架构设置为64位英特尔。还将Valid Architectures设置为x86_64
      6. 在Build Options下,将Compiler for C / C ++设置为Default Compiler
      7. 在“搜索路径”下,将“标题搜索路径”设置为/ usr / local / include
      8. 也在“搜索路径”下,将“库搜索路径”设置为/ usr / local / lib
      9. 在Apple LLVM编译器4.2下 - 语言集C ++标准库到libstd ++
      10. 将已编译的opencv库添加到项目中

        1. 转到
        2. 中“构建设置”标签旁边的“构建阶段”标签
        3. 在Link Binary With Libraries中,单击+号并选择Add Other
        4. 点击键盘上的前斜杠/并输入/ usr / local / lib
        5. 按Enter键并选择要在项目中使用的库
        6. 确保您始终选择libopencv_core.2.4.4.dylib
        7. 按Enter键,您将在项目下看到所选的dylib
        8. 写一些代码

          1. 首先让我们整理文件,右键单击项目蓝图图标,然后选择新建组
          2. 将新组命名为opencv或其他
          3. 拖动dylib并将其放入该组
          4. 打开main.cpp
          5. 从opencv附带的任何样本测试中复制代码并将其粘贴到此处
          6. 确保添加了所有必需的dylib,例如,如果将opencv_test_stitching.cpp代码复制到main.cpp中,则需要在前面的步骤中添加以下库 libopencv_core.2.4.4.dylib libopencv_highgui.2.4.4.dylib libopencv_stitching.2.4.4.dylib
          7. 干杯。