提问人:jamone 提问时间:3/18/2020 更新时间:11/19/2020 访问量:1722
使用 Objective-C 中的 FFmpeg XCFramework,找不到标头
Consume FFmpeg XCFramework from Objective-C, headers not found
问:
我为 Apple 的平台构建了 FFmpeg 作为 XCFramework。我使用了 https://github.com/kewlbear/FFmpeg-iOS-build-script/pull/147 中的脚本来做到这一点。
我现在尝试在传统的 iOS/macOS 框架(名为 VideoEditing)中使用该框架,然后在我的 iOS 应用程序中使用该框架(即将尝试成为 Catalyst)。
在我已链接到应用程序中,然后在使用我的应用程序中已链接并嵌入。以前,我将 FFmpeg 构建为一个标准的静态库,并在 Objective-C++ 包装器中使用它,这样我就可以在 Swift 中使用它。VideoEditing
FFmpeg.xcframework
VideoEditing
FFmpeg.xcframework
VideoEditing
在那个 Objective-C++ 文件中,我会导入 FFmpeg 标头,例如 要做到这一点,我必须设置标题搜索路径。转换为 XCFramework 后,您应该如何操作?我试过 , , 以及 .在每种情况下,我都会在网上遇到错误。#import <libswscale/swscale.h>
@import FFmpeg
#import <FFmpeg/libswscale/swscale.h>
#import <FFmpeg/swscale.h>
#import <libswscale/swscale.h>
file not found
import
Apple 的所有示例都只是在 Swift 中展示了它,框架提供了一个模块。如果我尝试仍然设置标头搜索路径,那么现在每个体系结构都有不同的标头。
答:
尝试并设置为从生成设置。确保将其设置为@import FFmpeg
Enable Modules (C and Objective C)
YES
Link Frameworks Automatically
YES
评论
@import FFmpeg
Enable Modules (C and Objective C)
您需要将头文件与 xcframework 并行放置,并将头搜索路径设置为该头文件。xcframework 就像一个 .a 文件,Xcode 不会在 xcframework 中搜索标头。
评论