【发布时间】:2020-06-28 23:12:24
【问题描述】:
我为 Apple 平台构建了 FFmpeg 作为 XCFramework。我使用https://github.com/kewlbear/FFmpeg-iOS-build-script/pull/147 中的脚本来执行此操作。
我现在正尝试在传统的 iOS/macOS 框架(名为 VideoEditing)中使用该框架,然后在我的 iOS 应用程序中使用该框架(很快将尝试成为 Catalyst)。
在VideoEditing 中,我已链接到FFmpeg.xcframework,然后在使用VideoEditing 的应用程序中,我已链接并嵌入FFmpeg.xcframework。以前我将 FFmpeg 构建为标准静态库,并在 Objective-C++ 包装器中使用 VideoEditing 内部的它,这样我就可以从 Swift 中使用它。
在那个 Objective-C++ 文件中,我会导入像 #import <libswscale/swscale.h> 这样的 FFmpeg 头文件。为了完成这项工作,我必须设置头文件搜索路径。转换为 XCFramework 后应该怎么做?我试过@import FFmpeg、#import <FFmpeg/libswscale/swscale.h>、#import <FFmpeg/swscale.h> 以及#import <libswscale/swscale.h>。在每种情况下,我都会在import 行上收到file not found 错误。
Apple 的所有示例都仅在 Swift 中展示它,并带有出售模块的框架。如果我仍然尝试设置标头搜索路径,那么您现在每个架构都有不同的标头。
【问题讨论】:
-
我遇到了同样的问题,但使用的是 Firebase/Crashlytics SDK 的 6.28.2 版本。所以这个问题不仅限于FFmpeg。
标签: objective-c xcode ffmpeg linker-errors xcframework