如何为 iOS 构建 OpenCV 2.4.9?

2023-11-23

我正在关注这些指示属于 openCV 文档,但它们确实已经过时了:提到了 iOS4 或 iOS5,XCode 4.2 安装在 /Developer 中,等等。

它没有构建,并且我有各种错误:

所有初始测试均失败:--Performing Test HAVE_CXX_W - Failed Also:

-- Looking for fseeko
-- Looking for fseeko - not found
-- Looking for unistd.h
-- Looking for unistd.h - not found
-- Looking for sys/types.h
-- Looking for sys/types.h - not found
-- Looking for stdint.h
-- Looking for stdint.h - not found
-- Looking for stddef.h
-- Looking for stddef.h - not found

配置看起来正确:

-- General configuration for OpenCV 2.4.9 =====================================
--   Version control:               2.4.5-1168-g0a42a3e
--
--   Platform:
--     Host:                        Darwin 12.3.0 i386
--     Target:                      iOS
--     CMake:                       2.8.10
--     CMake generator:             Xcode
--     CMake build tool:            /opt/local/bin/cmakexbuild
--     Xcode:                       4.6.2
[...]
--   Media I/O:
--     ZLib:                        build (ver 1.2.7)
--     JPEG:                        build (ver 90)
--     WEBP:                        NO
--     PNG:                         build (ver 1.5.12)
--     TIFF:                        NO
--     JPEG 2000:                   NO
--     OpenEXR:                     NO
--
--   Video I/O:
--     AVFoundation:                YES
--     QuickTime:                   NO
--     QTKit:                       YES
--     V4L/V4L2:                    NO/NO

但后来,我遇到了第一个链接错误:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: can't open file: /Users/ant/xcode/opencv/ios/build/iPhoneOS-armv7/3rdparty/libjpeg/OpenCV.build/Release-iphoneos/libjpeg.build/Objects-normal/armv7/jmemansi.o

我的系统缺少什么来编译 iOS 版 OpenCV?


根据 3rdParty/libjpeg/CMakeLists.txt:12,jmemansi.c 被排除在 build 之外:

if(ANDROID OR IOS)
  ocv_list_filterout(lib_srcs jmemansi.c)
else()
  ocv_list_filterout(lib_srcs jmemnobs.c)
endif()

但是,在世界模块构建中,相应的目标文件不会从链接器输入中排除。这可以通过从链接器输入中过滤掉 jmemansi.o 来解决:

模块/world/CMakeLists.txt:84

macro(ios_include_3party_libs)
  foreach(l ${ARGN})
    add_dependencies(${the_module} ${l})
    string(REGEX REPLACE "<MODULE_NAME>" "${l}" objpath1 "${CMAKE_BINARY_DIR}/3rdparty/${l}/${objpath0}")
    file(GLOB sources ${CMAKE_SOURCE_DIR}/3rdparty/${l}/*.c)
    foreach(srcname ${sources})
      if(IS_ABSOLUTE "${srcname}")
        file(RELATIVE_PATH srcname "${CMAKE_SOURCE_DIR}/3rdparty/${l}" "${srcname}")
      endif()

      string(REPLACE ".." "__" srcname "${srcname}")
      get_filename_component(srcname_we ${srcname} NAME_WE)
      string(REGEX REPLACE <SRC_NAME_WE> "${srcname_we}" objpath2 "${objpath1}")
      string(REGEX REPLACE <RELATIVE_SRC_NAME> "${srcname}" objpath3 "${objpath2}")

      list(APPEND objlist "\"${objpath3}\"")
    endforeach() # (srcname ${sources})
  endforeach()
  ocv_list_filterout(objlist jmemansi) # <<= dirty fix
endmacro()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 iOS 构建 OpenCV 2.4.9? 的相关文章

随机推荐

  • 调用不存在的端点时收到 403 而不是 404

    这是 Spring Security 配置的典型部分 Override protected void configure HttpSecurity http throws Exception http csrf and cors disab
  • Apache HttpClient 和 PEM 证书文件

    我想以编程方式访问需要客户端证书的网站 该证书位于 PEM 文件中 在此应用程序中 我不想将它们添加到我的密钥库中 如果可以避免的话 请使用 keytool 或 openssl 我需要直接在代码中处理它们 HttpClient httpcl
  • 弹出窗口在关闭时将数据返回给父级

    我使用打开了一个弹出窗口window open 我现在想要的是用户能够单击这个新窗口中的两个链接之一 允许 或 不允许 当用户单击这些链接之一时 弹出 窗口应该关闭 并返回 允许 或 不允许 或类似的内容 true false就可以了 到父
  • 在 Inno Setup 脚本上安装 MySQL 并加载数据库

    我在 Stack Overflow 上读了很多文档 你们太棒了 我采用了另一篇文章中建议的一些代码 帮助很大 感谢 RobeN 我能够加载并启动 MySQL 不过 我确实阅读了建议将数据库自动加载到序列中的文档 我似乎无法弄清楚 任何帮助都
  • document.all 和 document.layers 现在已过时

    我正在使用一些 旧的 本机 javascript 并且遇到了 document getElementById document all 和 document layers 的分离 据我所知 document all 和 document l
  • Android 多个同步适配器项目(例如 Google 帐户)?

    我目前已将 Android 应用程序设置为使用 Android 的 AccountManager 功能 使用 SyncAdapter 和经过身份验证的帐户自动执行同步 我只运行 1 个同步适配器 用于同步所有内容 但我想将其分开 以便以不同
  • scala 中的 MinMax 归一化

    我有一个包含多列的 org apache spark sql DataFrame 我想使用 MinMax 归一化或任何技术来缩放 1 列 lat long dist 以在 1 和 1 之间缩放数据并将数据类型保留为 org apache s
  • 不明确的 if 和 else 分支:行为是否已定义?

    我最近遇到了一些 C 代码 如下所示 if test 1 if test 2 Do stuff else exit 0 这是不明确的 因为编译器可以将其视为 if test 1 if test 2 else or as if test 1
  • 查找数组中元素的最大总和的算法,使得相邻元素不超过 k 个

    我遇到了这个问题 给定一个仅包含正值的数组 您希望在没有超过 k 个选定元素的组是相邻的约束下最大化选定元素的总和 例如 如果输入为 1 2 3 1 7 9 n 6 且 k 2 输出将为 21 来自选择元素 2 3 7 9 我的简单 DP
  • 执行大查询时内存不足?

    我在尝试进行大查询时收到此错误 java lang OutOfMemoryError Java heap space 我搜索过并发现申请设置自动提交 假 and 设置获取大小我准备好的语句的方法可能有助于处理大查询 然而 当我使用它时 我收
  • 将长sql vba语句分成多行

    我对 VBA 环境完全陌生 我试图将这一行分成多行 但失败了 有人可以帮我把这段代码分成多行吗 DoCmd RunSQL UPDATE INDIVIDUAL SET INDIVIDUAL INDI FIRSTNAME prospect co
  • Ruby 在 Windows 上崩溃

    我面临着这里描述的同样的问题 为什么 ruby exe 遇到了问题并且需要关闭 rails 失败 那是 ruby 崩溃并出现以下错误 ruby exe has encountered a problem and needs to close
  • 不是有效 python 标识符的属性

    通常的属性访问方法要求属性名称是有效的 python 标识符 但属性不必是有效的 python 标识符 gt gt gt class Thing def init self setattr self 0potato 123 gt gt gt
  • 更改表并添加 UNIQUE 键会导致错误

    我有一张桌子叫Animal AnimalId是主键 我想设置该列AnimalType id作为独特的 我有一个AnimalType表并需要在此处设置外键 ALTER TABLE Animal ADD UNIQUE Animal Animal
  • 在 WebAPI 方法中返回 HTTP 403

    我如何返回HTTP 403 from a WebAPI方法 我试过扔一个HttpResponseException with HttpStatusCode Forbidden 我已经尝试过 return request CreateErro
  • 使用奥格登引理与常规泵引理进行上下文无关语法

    我正在学习问题中引理之间的区别 我能找到的每个参考文献都使用以下示例 a i b j c k d l i 0 or j k l 以显示两者之间的差异 我可以找到一个使用常规引理来 反驳 它的例子 选择 w uvxyz s t 维 gt 0
  • ECMAScript 3 在主要浏览器中的实现仍然存在差异吗?

    有人可以指出 ECMAScript 第三版在当今浏览器中的实现差异吗 Chrome Safari IE8 FF 使用 ECMAScript 3 标准 而不是 FF 和 IE 对 JScript 和 JavaScript 的扩展 时我们安全吗
  • C 生成不重复的随机数[重复]

    这个问题在这里已经有答案了 我想生成 1 到 13 之间的随机数而不重复 我用了这个方法 但是并不能保证没有信誉 for i 0 i lt 13 i array i 1 rand 13 请帮我 C语言 正如评论所说 Fill an arra
  • Android 单选按钮取消选中

    该应用程序是一个步进音序器应用程序 具有 16 个无线电组 每组有 8 个按钮 它工作得很好 除非一个组选择了一个按钮 否则我无法将其关闭 除非我使用我创建的清除按钮来清除所有无线电组 我想添加的是一些代码 它表示当再次选择选定的单选按钮时
  • 如何为 iOS 构建 OpenCV 2.4.9?

    我正在关注这些指示属于 openCV 文档 但它们确实已经过时了 提到了 iOS4 或 iOS5 XCode 4 2 安装在 Developer 中 等等 它没有构建 并且我有各种错误 所有初始测试均失败 Performing Test H