librtmp-iOS 1.1.0

librtmp-iOS 1.1.0

许可证 MIT
发布最新发布2014年12月

Min Kim 维护。



  • 作者:
  • Min Kim

为 iOS 构建 librtmp

http://www.davideccher.com/blog/wordpress/building-librtmp-for-ios/

mkdir openssl cd openssl curl http://www.openssl.org/source/openssl-1.0.1e.tar.gz -O openssl-1.0.1e.tar.gz tar xfz openssl-1.0.1e.tar.gz

我们将所有版本都在 tmp 文件夹中构建。首先为 armv6 配置它。

? mkdir openssl-1.0.1e-armv6 cd openssl-1.0.1e ./configure BSD-generic32 --openssldir=../openssl-1.0.1e-armv6 现在我们需要编辑 Makefile 并更改

?

编辑 Makefile 并更改

/Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch armv6

CC= gcc 使用 CC= /Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch armv6

添加到 CFLAGS: -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk

这些链接适用于我的构建系统,使用 SDK 5.0。请将其更改为其他构建系统。

到此,我们已准备好构建。

? make make install 现在 /tmp/openssl-1.0.0g-armv6 中有构建好的库。

我们对 armv7 和 i386 也做同样的操作

?

ARMV7

cd .. mkdir openssl-1.0.1e-armv7 cd openssl-1.0.1e ./configure BSD-generic32 --openssldir=../openssl-1.0.1e-armv7

编辑 Makefile 并更改

CC= /Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch armv7

CC= gcc 使用 CC= /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv7

将 CLAGS 添加到 CLAGS: -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk

make make install

i386

mkdir openssl-1.0.1e-i386 cd openssl-1.0.1e ./configure BSD-generic32 --openssldir=../openssl-1.0.1e-i386

编辑 Makefile 并更改

CC= gcc 使用 CC= /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch i386

CC= /Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch i386 make make install

在这个时候,我们可以使用lipo创建一个通用库。

? cd .. mkdir include cp -r /tmp/openssl-1.0.1e-i386/include/ include/ mkdir lib

将以下文件合成为一个库lipo /tmp/openssl-1.0.0g-armv6/lib/libcrypto.a /tmp/openssl-1.0.0g-armv7/lib/libcrypto.a /tmp/openssl-1.0.0g-i386/lib/libcrypto.a -create -output lib/libcrypto.a 同样地,将以下文件合并为libssl.a lipo /tmp/openssl-1.0.0g-armv6/lib/libssl.a /tmp/openssl-1.0.0g-armv7/lib/libssl.a /tmp/openssl-1.0.0g-i386/lib/libssl.a -create -output lib/libssl.a 现在我们可以在include和lib文件夹中看到OpenSSL的通用库。

为了构建iOS上的librtmp,我们需要像OpenSSL那样构建三个库版本。

开始克隆最新版本

? mkdir librtmp cd librtmp git clone git://git.ffmpeg.org/rtmpdump rtmpdump

为了构建armv6版本的库,创建源码的副本

? cp -r rtmpdump rtmpdump-armv6 cd rtmpdump-armv6/librtmp

编辑Makefile并设置

CC=$(CROSS_COMPILE)gcc -arch armv6

export CROSS_COMPILE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ export XCFLAGS="-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -I/tmp/openssl/include/ -arch armv6" export XLDFLAGS="-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -L/tmp/openssl/lib -arch armv6 " make SYS=darwin make SYS=darwin prefix=/tmp/librtmp-armv6 install 更换export路径使用正确的系统构建路径和之前openssl库构建的路径。

对于armv7

? cp -r rtmpdump rtmpdump-armv7 cd rtmpdump-armv7/librtmp

编辑Makefile并更改

CC=$(CROSS_COMPILE)gcc -arch armv7

export CROSS_COMPILE=/Applications/Xcode.app/Contents/Developer/usr/bin/ export XCFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -I/tmp/openssl/include/ -arch armv7" export XLDFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -L/tmp/openssl/lib -arch armv7" make SYS=darwin make SYS=darwin prefix=/tmp/librtmp-armv7 install

export CROSS_COMPILE=

对于模拟器

? cd .. cp -r rtmpdump rtmpdump-i386 cd rtmpdump-i386/librtmp edit Makefile con CC=$(CROSS_COMPILE)gcc -arch i386 export CROSS_COMPILE=/Applications/Xcode.app/Contents/Developer/usr/bin/

export XCFLAGS="-I/tmp/openssl/include/ -arch i386" export XLDFLAGS="-L/tmp/openssl/lib -arch i386"

make SYS=darwin make SYS=darwin prefix=/tmp/librtmp-i386 install 现在我们可以使用lipo创建一个通用库。

? mkdir include cp -r /tmp/librtmp-i386/include/librtmp include/ mkdir lib lipo /tmp/librtmp-armv6/lib/librtmp.a /tmp/librtmp-armv7/lib/librtmp.a /tmp/librtmp-i386/lib/librtmp.a -create -output lib/librtmp.a