之前在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];