【问题标题】:Xcode Cocoa app libav* and MagickWand static library issuesXcode Cocoa 应用程序 libav* 和 MagickWand 静态库问题
【发布时间】:2018-03-12 10:42:12
【问题描述】:

我一直在开发一个同时使用 libav* 和 ImageMagick C 库的 Cocoa 应用程序,但在实际分发应用程序时遇到了问题。我已经像这样链接到 Xcode 中的各种静态库:

该应用程序在我的机器上构建并运行得非常好。现在我正在尝试在另一台计算机上运行它。我将构建存档,并将其导出为 Xcode 中的 macOS 应用程序,这样我就得到了 .app 存档。现在,当我尝试在不同的 Mac 上运行它时,我收到以下错误:

如果我在构建的二进制文件上运行otool -L binary_name,我会为每个包含的 .a 文件获得一个 .dylib。我认为静态库的全部意义在于它被内置到主二进制文件中,因此不需要进行任何动态链接。为什么还在尝试加载dylib?

【问题讨论】:

    标签: xcode macos cocoa static-linking libavcodec


    【解决方案1】:

    我设法解决了这个问题,并相信这是由于此处列出的技术说明:Using static versions of existing dynamic libraries。由于我使用的依赖项是通过自制软件安装的,因此每个依赖项的 lib 文件夹都有 .a 和 .dylib 文件,并且 Xcode 使用 dylib 进行链接。为了解决这个问题,我将所有需要的 .a 文件复制到一个单独的文件夹中,并在 Xcode 中调整了我的 Library Search Paths 以指向新文件夹。该应用程序现在会按应有的方式构建并链接到静态库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多