如何为 iOS 构建 DLIB

how to build DLIB for iOS

我正在尝试为 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 项目中吗?

我终于知道怎么做了:

Requirements

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

Steps

  • 在终端中将lib-xx.xx/examples设置为你的root
  • 运行:

    mkdir build

    cd build

    cmake -G Xcode ..

    cmake --build . --config Release

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

编辑:

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

为了赞美 RASS 的回答,我附上了屏幕截图,展示了如何将其更改为 iOS 和 OSX 库

打开项目后,

  1. Select 来自项目导航器的项目文件
  2. Select dlib 目标一直向下
  3. Select 'Build Settings'
  4. 展开'Base SDK'下拉

  1. Select iOS 或 macOS (OSX)

我希望这能帮助一些人! gl

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

  1. 将libdlib.a添加到项目,并将路径添加到库搜索路径
  2. 将所有源添加到包含目录(不添加到项目),并将路径添加到 header 搜索路径。
  3. 添加加速框架,其中包含 blas 符号。
  4. 添加预处理器宏,来自构建设置,"custom compiler flag"/"other c flags"。这些宏确保 header 文件与库匹配。

    -DDLIB_JPEG_SUPPORT
    -DDLIB_NO_GUI_SUPPORT
    -DNDEBUG
    -DDLIB_USE_BLAS
    -DDLIB_USE_LAPACK