#问题来源
最近在iOS模拟器编译LiveVideoCoreSDK工程时,提示:“Building for iOS Simulator, but the linked library ‘libssl.a’ was built for iOS”、“Building for iOS Simulator, but the linked library ‘librtmp.a’ was built for iOS”、“Building for iOS Simulator, but the linked library ‘libcrypto.a’ was built for iOS”。
分析原因应该是代码(https://github.com/runner365/LiveVideoCoreSDK)中带的librtmp.a、libssl.a、libcrypto.a三个库文件没有加入x86_64架构的编译支持,需要对librtmp编译一个支持iOS模拟器x86_64架构的版本。
#编译方案
搜索了一下网络相关的资料,github上有个项目对librtmp在iOS平台上的编译介绍的比较详细:
https://github.com/minsikzzang/librtmp-iOS。
按照项目中的说明对librtmp库进行编译,还比较顺利,过程中遇到并解决几个问题,决定写个文档来记录说明一下。
#Makefile中CC变量设置
在编译openssl和librtmp时,Makefile里的CC变量需要修改成:
CC= /Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch [armv6 | armv7 | armv7s | arm64 | i386 | x86_64]
参考文档中部分内容将CC编译命令写成:/Developer/Platforms/iPhoneOS.platf