开源库交叉编译(十)--- LIVE555

本文介绍了如何在ARM架构上为LIVE555项目进行交叉编译,涉及解压、配置OpenSSL、修改编译选项、生成并执行makefile,以及遇到的BasicTaskScheduler.cpp编译错误的解决方法。
摘要由CSDN通过智能技术生成

官网:http://www.live555.com/

下载:http://www.live555.com/liveMedia/public/

源码:live.2023.07.24.tar.gz

LIVE555 依赖 OpenSSL ,需先交叉编译 OpenSSL

Step 1:解压

tar -xvzf live.2023.07.24.tar.gz

cd live/

Step 2:创建安装目录

mkdir arm_live555

Step 3:配置

1)拷贝编译配置,将默认配置 config.armlinux 拷贝到 config.aarch64linux :

cp config.armlinux config.aarch64linux

2)修改,如下:

CROSS_COMPILE?=     aarch64-linux-gnu-
COMPILE_OPTS =      $(INCLUDES) -I/home/xxx/share/3rdparty/openssl-1.1.1s/arm_openssl/include -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -std=c++11 -fPIC -DNO_STD_LIB
C =         c
C_COMPILER =        $(CROSS_COMPILE)gcc
C_FLAGS =       $(COMPILE_OPTS)
CPP =           cpp
CPLUSPLUS_COMPILER =    $(CROSS_COMPILE)g++
CPLUSPLUS_FLAGS =   $(COMPILE_OPTS) -Wall -DBSD=1
OBJ =           o
LINK =          $(CROSS_COMPILE)g++ -o
LINK_OPTS =    
CONSOLE_LINK_OPTS = $(LINK_OPTS)
LIBRARY_LINK =      $(CROSS_COMPILE)ar cr
LIBRARY_LINK_OPTS = $(LINK_OPTS)
LIB_SUFFIX =            a
LIBS_FOR_CONSOLE_APPLICATION = -L/home/xxx/share/3rdparty/openssl-1.1.1s/arm_openssl/lib -lssl -lcrypto
LIBS_FOR_GUI_APPLICATION =
EXE =
PREFIX=/home/xxx/share/3rdparty/live/arm_live555

主要有以下修改点:

  • 配置编译器;
  • 配置编译安装目录;
  • 根据实际情况配置已经交叉编译好的 OpenSSL 头文件和库路径;
  • 添加编译参数 -std=c++11 -fPIC -DNO_STD_LIB;

3)执行 genMakefiles,生成 makefile

./genMakefiles aarch64linux

Step 4:编译安装

make

make install

编译可能有如下报错:

报错1:

BasicTaskScheduler.cpp:191:40: error: ‘struct std::atomic_flag’ has no member named ‘test’

编译配置文件 config.aarch64linux 的 COMPILE_OPTS 添加 -DNO_STD_LIB 或者 -std=c++2a 编译参数。

Step 5:重新配置编译

按照之前步凑重新配置编译。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值