【问题标题】:how to build DLIB for iOS如何为 iOS 构建 DLIB
【发布时间】:2016-04-08 01:43:23
【问题描述】:

我正在尝试为 iOS 项目构建 DLIB。运行cmake 会产生libdlib.a.o 文件的加载。

当我将库添加到 Xcode 项目时,我收到警告说该库尚未为 arm64 构建。

我的问题分为两部分:

  1. 如何为 iOS 构建 DLIB(我尝试了 cmake **path_to_source** -DCMAKE_OSX_ARCHITECTURE="arm64",但它导致了大量错误,例如 unknown type name '__uint32_t'; did you mean '__uint128_t')?
  2. 运行 cmake 时生成的所有 .o 文件的目的是什么?我需要将它们包含在 Xcode 项目中吗?

【问题讨论】:

  • 对象文件 (*.o) 只是构建的副产品。由此产生的libdlib.a 是您可能想要使用的静态库。你的 Xcode 版本是多少?
  • 我使用的是最新版本 7.2
  • 我的源是 linux/OSX,所以我不确定是否可以为 iOS 构建?
  • 是的,就是this is the website。示例文件夹中有大量生成文件。 This is the compilation instructions
  • 谢谢@ruslo,我会去看看。

标签: ios cmake dlib


【解决方案1】:

Rob Sanders 和 mylogon 已经展示了如何为 ios 构建 dlib,这里是如何使用它:

  1. 将 libdlib.a 添加到项目中,并将路径添加到库搜索路径
  2. 将所有源添加到包含目录(不要添加到项目中),并将路径添加到标题搜索路径。
  3. 添加包含 blas 符号的加速框架。
  4. 从构建设置中添加预处理器宏,“自定义编译器标志”/“其他 c 标志”。这些宏确保头文件与库匹配。

    -DDLIB_JPEG_SUPPORT
    -DDLIB_NO_GUI_SUPPORT
    -DNDEBUG
    -DDLIB_USE_BLAS
    -DDLIB_USE_LAPACK
    

【讨论】:

    【解决方案2】:

    为了补充 RASS 的回答,我附上了屏幕截图,展示了如何在 iOS 和 OSX 库之间进行更改

    打开项目后,

    1. 从项目导航器中选择项目文件
    2. 从底部一直选择 dlib 目标
    3. 选择“构建设置”
    4. 展开“基础 SDK”下拉菜单

    1. 选择 iOS 或 macOS (OSX)

    我希望这可以帮助一些人! GL

    【讨论】:

      【解决方案3】:

      我终于想通了:

      要求

      • X11(在 Mac 上,您只需打开 X11 应用程序,如果未安装 X11,它将带您下载)。
      • Xcode
      • cmake(你可以使用自制)

      步骤

      • 在终端中将 lib-xx.xx/examples 设为您的根目录
      • 运行:

        mkdir build

        cd build

        cmake -G Xcode ..

        cmake --build . --config Release

      这将创建一个名为 dlib_build 的文件夹,您可以在其中找到编译库的 Xcode 项目。在该 Xcode 项目的构建设置中,您可以为您喜欢的任何 Xcode 支持的操作系统设置构建架构和 SDK!

      编辑:

      您必须包含许多自定义编译器标志和 3rd 方库才能使 dlib 在项目中工作。查看examples.xcproject 构建设置。

      【讨论】:

      • 我完全按照你说的做了,但它给了我一个仅在 Mac(OSX) 上兼容的 xCode 项目。我错过了什么吗?
      • 是的,您所要做的就是进入构建设置并更改支持的平台。
      • @RASS 嗨!我还尝试使用 dlib 库为 iOS 构建我的 XCode 应用程序,但由于架构类型(例如ld: building for iOS simulator, but linking against dylib built for OSX, file '/opt/X11/lib/libICE.dylib' for architecture x86_64),我遇到了很多问题。您是否在 dlib 构建阶段或 XCode 应用构建阶段使用了一些架构标志?
      • @don-prog 您可以在 Xcode 构建设置中的 dlib 构建阶段更改活动架构。默认设置为 OS X,但您可以将其更改为 iOS 或模拟器。
      • @RASS 你用 iOS 工具链为 iOS 构建 dlib 了吗?我问这个是因为我有some problems with this。如果你能给我一些关于 iOS 的 dlib 构建阶段的特别建议,那将是非常好的。也许我什至不需要使用 iOS 工具链或其他东西?
      猜你喜欢
      • 2017-05-10
      • 2017-08-04
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-11
      • 2014-11-08
      相关资源
      最近更新 更多