【问题标题】:ld: symbol(s) not found for architecture i386 Error while using AVFoundationld: 未找到架构 i386 的符号 使用 AVFoundation 时出错
【发布时间】:2013-04-15 06:35:30
【问题描述】:

我正在尝试使用 AVFoundation 框架来创建视频缩略图。我已正确添加并导入#import <AVFoundation/AVFoundation. 这是创建缩略图的代码:

AVURLAsset *asset=[[AVURLAsset alloc] initWithURL:[NSURL URLWithString:moviePath] options:nil];
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generator.appliesPreferredTrackTransform=TRUE;
CMTime thumbTime = CMTimeMakeWithSeconds(0,30);

AVAssetImageGeneratorCompletionHandler handler = ^(CMTime requestedTime, CGImageRef im, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error){
    if (result != AVAssetImageGeneratorSucceeded) {
        NSLog(@"couldn't generate thumbnail, error:%@", error);
    }
    [imageButton setImage:[UIImage imageWithCGImage:im] forState:UIControlStateNormal];
    //UIImage *thumbImg=[UIImage imageWithCGImage:im];
};

CGSize maxSize = CGSizeMake(320, 180);
generator.maximumSize = maxSize;
[generator generateCGImagesAsynchronouslyForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:thumbTime]] completionHandler:handler];

当我构建它时,我收到以下错误:

Undefined symbols for architecture i386:_CMTimeMakeWithSeconds", referenced from:
  -[photojournal generateImage] in photojournal.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

我已经在 Google 和 Stack Overflow 上查看了类似的问题,并且共识似乎是添加丢失的文件来编译源代码。我的问题是 - AVFoundation 缺少哪些文件?当我导入框架时,它们不应该都来吗?谢谢。

【问题讨论】:

  • 是的,您应该只需要导入语句以及构建阶段中的“将二进制文件与库链接”。如果您添加了框架,这应该是自动的
  • 我就是这么想的。那么为什么它不能识别 _CMTimeMakeWithSeconds 呢?如果我注释掉这一行,应用程序编译正确。
  • 在设备和模拟器上......现在它仍然在发生,即使我已经升级到 iOS 6

标签: ios5 video avfoundation


【解决方案1】:

您需要将 Core Media 框架添加到您的项目中,并且

#import <CoreMedia/CoreMEdia.h>

CMTime 是 Core Media 框架的一部分。我有同样的错误,这解决了它。

【讨论】:

  • 我已经在类头文件中有#import ,但我仍然收到错误
【解决方案2】:

扩展 andrewmobile 的答案。除了#import ,您还需要在构建阶段下的“Link binary with libraries”中添加 CoreMedia.framework。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    相关资源
    最近更新 更多