交叉编译第三方库(srt例)

**1.交叉编译器**

从 https://www.linaro.org/downloads/ 下载 与开发板平台对应的 交叉编译器的二进制文件 压缩包
解压后可直接使用

**2.在上位机使用交叉编译器编译srt源码**

从https://github.com/Haivision/srt下载srt源码压缩包
解压压缩包生成srt-master文件夹
~$cd srt-master
SRT模块交叉编译之前,需要先configure,configure时必须的两个参数分别是:“--prefix”和“--with-compiler-prefix”。 “--prefix”表示的是编译完成之后,“make install”命令将编译结果拷贝的目录; “--with-compiler-prefix”则是编译器的路径。

./configure --prefix=/home/nyl/work/package/git_base/srt/lower/ --with-compiler-prefix=/opt/AAR/bin/aarch64-linux-gnu-

configure之后,依次make;make install; 编译结果就被拷贝到了“--prefix”所指定的目录了。
需要注意的是:
    --有些比较旧的编译器,可能还需要在configure时,加上选项“--disable-c++11”
    --有些编译环境,没有SRT依赖的openssl库;编译时会出错,这时就需要先编译openssl,并安装到交叉编译环境中(交叉编译openssl源码生成的库和头文件放至交叉编译器默认搜索的路径,可类比第三方库libpthread.so所在位置,)
    --有时,编译不过,可以先手动删除CMakeCache.txt,避免错误配置的影响 


开源库openssl编译说明 
openssl的编译方法与SRT类似,源码来自于openssl的官网(https://www.openssl.org/source/)。
交叉编译前,也需要configure,必须的选项分别是“--prefix”、“CROSS_COMPILE”,configure的例子如下:

./Configure linux-aarch64 no-asm shared no-async --prefix=/home/nyl/work/package/git_base/openssl/lower/ CROSS_COMPILE=/opt/AAR/bin/aarch64-linux-gnu-

需要注意的是:
    --选项 “linux-aarch64”与“linux-generic32”分别代表64位ARM和32位处理器, 如果是其他类型的处理器,建议用./Configure --help来找一个对应的处理器
    --选项“-no-asm”,表示编译时,不用汇编加速
    --选项“no-async”,表示编译器不支持ucontext库,一般的编译环境都支持,除了部分海思
    --编译之后,生成的头文件拷贝到/opt/AAR/aarch64-linux-gnu/libc/usr/include
           生成的库文件拷贝到/opt/AAR/aarch64-linux-gnu/libc/usr/lib (可选择软链接方式   ln   -s   /源路径(生成库的路径)   /目的路径(交叉编译器默认搜索的路径))

**3.生成srt库和头文件移植到开发板**

将srt库放入/usr/local/lib 并软链接至/usr/lib  (软链接时需加绝对路径)
将srt头文件放入/usr/local/include 编写代码时需调绝对路径 例:#inlucde "/usr/local/include/srt/srt.h"


**4.PC在交叉编译需链接srt库**

build.sh脚本文件编写

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值