RK1109平台 亚马逊webrtc移植

RK1109平台 KVSwebrtc移植生成静态库过程

必备条件:科学上网

1、拉取源代码

https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c.git

2.更改 srtp的CMakeLists

在这里插入图片描述

在CMAKE_ARGS 中添加

-D TEST_APPS=OFF 

更改这个的目的是为了不生成测试文件,嵌入式编译器不认-lpthread

3.执行cmake

执行指令

1、设置对应的编译工具为交叉编译工具**(重要)**

export CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ LD=arm-linux-gnueabihf-ld AR=arm-linux-gnueabihf-ar

2、创建build文件夹

mkdir build && cd build

3、外部构建 - > 执行cmake

cmake .. -DBUILD_SAMPLE=FALSE -DBUILD_STATIC_LIBS=TRUE -DUSE_OPENSSL=TRUE -DBUILD_OPENSSL_PLATFORM=linux-generic32 -DOPENSSL_EXTRA="no-async" -DBUILD_LIBSRTP_HOST_PLATFORM=x86_64 -DBUILD_LIBSRTP_DESTINATION_PLATFORM=arm-linux-gnueabihf -DADD_MUCLIBC=TRUE

参数说明

DBUILD_SAMPLE=FALSE 目的与前面类似,避免出现-lpthread 找不到的问题

DBUILD_STATIC_LIBS表示生成静态库 

DUSE_OPENSSL 表示使用openssl 

DBUILD_OPENSSL_PLATFORM 表示openssl 平台 linux-generic32 表示32位机

DOPENSSL_EXTRA表示openssl编译时的编译选项 no-async表示交叉编译工具链没有提供GNU C的ucontext库

DBUILD_LIBSRTP_HOST_PLATFORM 表示srtp编译平台 ubuntu下可以使用uname -a 获取

DBUILD_LIBSRTP_DESTINATION_PLATFORM 表示srtp 目标平台 参数填交叉编译工具链相关的平台参数

DADD_MUCLIBC 表示是否需要避免不同gcc版本兼容,需要加上,有的交叉编译工具使用的是uclibc ,有的使用的是glibc两者在源码结构和二进制上不兼容。

可以查看目录下 CMake/Dependencies 文件夹中各个编译库的编译选项内容进行相应配置

如果ssl不能使用,可以尝试使用mbedtls

指令

cmake .. -DBUILD_SAMPLE=FALSE -DBUILD_STATIC_LIBS=TRUE -DUSE_OPENSSL=FALSE -DUSE_MBEDTLS=TRUE -DBUILD_LIBSRTP_HOST_PLATFORM=x86_64 -DBUILD_LIBSRTP_DESTINATION_PLATFORM=arm-linux-gnueabihf -DADD_MUCLIBC=TRUE

执行过程比较漫长,会自动去下载各种开源库,请保证网络通畅,耐心等待。

4、执行make

在这里插入图片描述

生成的open-source其中include 和lib文件中的内容即是我们需要的内容,除此之外还需要将build文件夹中的两个.a找到并移到lib文件夹中

在这里插入图片描述

得到kvs webrtc库,按需使用即可

在这里插入图片描述

使用生成的库制做动态库

制作

如果需要使用亚马逊sdk编译出来的库制作静态或者动态库需要注意连接关系和编译顺序,下面进行一个说明

cmake制作动态库时,添加完头文件路径和库文件路径后,在连接库的选项中

添加如下图选项
在这里插入图片描述

-Wl,–start-group

-Wl,–end-group

二者构成的条件,告诉编译器不需要管连接顺序,避免出现库中缺少方法的问题

使用

使用时,也有顺序要求,按上述方法可以避免,在使用时,还需要进行c库的连接

如图 ssl需要pthread 和dl 库,否则也会报缺少方法的问题

在这里插入图片描述

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值