mac osx用的ffmepg,总算搞出来了,总结碰到的坑

本文记录了解决iOS x86_64静态库在macOS上无法运行的问题过程,包括错误信息解析、解决方法及ffmpeg编译注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前在iOS里写过一个支持x86_64的支持rtsp连接静态库,发现在mac上运行不了,于是以为ios用的x86_64静态库和mac用的不通用。

于是去百度,去谷歌找适合mac的ffmpeg静态库编译方法,搞了三天没结果。

偶然一朋友说起它们是通用的,于是把步骤一再跑了一边,发现提示错误:

in /Users/wutong/Desktop/project/rtsptest/librtspstatic.a(Rtsp_instance.o), building for OSX, but linking in object file built for iOS, for architecture x86_64

百度了这个错误信息,发现这是xcode7的一个坑。


于是去网上下载了支持ios x86_64的ffmpeg静态库,直接搞定了。


总结:

1、ffmpeg用c语言实现,.m文件后缀不要改。

2、在xcode7上编译的支持x86_64的静态库,不能和mac通用。(要通用就别用xcode7编译)。

3、在项目连接这几个文件: libz.tbd、libiconv.tbd、libicucore.tbd(最后一个不确定需不需要)


关于caopengllayer

1、self.layer addSublayer 之前,执行

        self.wantsLayer = YES;

        self.layer.geometryFlipped = YES;


2、nsview的背景颜色:

- (void)drawRect:(NSRect)dirtyRect {

    [super drawRect:dirtyRect];

    // Drawing code here.

    NSLog(@"drawRect");

    [_backColor set];

    NSRectFill([self bounds]);

}


3、nscolor转nscolorref

[[NSColor redcolor] cgcolor];


4、绝对不要在主线程里面调用[layer displayyuv];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值