Loading...
首页专栏正文

live555在海思芯片上的使用

ezreal_cs 发布于 2020-06-16 15:39:52 浏览 853 点赞 0 收藏 0

live555在海思芯片上的使用

[TOC]

1. live555源码获取

live555-latest.tar.gz

2. 添加config文件

在live555的根目录live下添加config.armhisiv300linux文件,内容如下:

CROSS_COMPILE?=     arm-hisiv300-linux-
COMPILE_OPTS =      $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DLOCALE_NOT_USED
C =         c
C_COMPILER =        $(CROSS_COMPILE)gcc
C_FLAGS =       $(COMPILE_OPTS) -Wno-deprecated -mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations
CPP =           cpp
CPLUSPLUS_COMPILER =    $(CROSS_COMPILE)g++
CPLUSPLUS_FLAGS =   $(COMPILE_OPTS) -Wall -DBSD=1 -Wno-deprecated -mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations
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 =
LIBS_FOR_GUI_APPLICATION =
EXE =

3. Make

在live目录中执行

./genMakefiles armhisiv300linux
make

即可完成编译。

4. live555库的使用

头文件路径如下:

  • live/UsageEnvironment/include

  • live/groupsock/include

  • live/liveMedia/include

  • live/BasicUsageEnvironment/include

静态库的链接顺序:

  1. live/liveMedia/libliveMedia.a
  2. live/groupsock/libgroupsock.a
  3. live/BasicUsageEnvironment/libBasicUsageEnvironment.a
  4. live/UsageEnvironment/libUsageEnvironment.a

5. 说明

由于hisiv300使用的是uClibc,没有xlocale.h这个头文件,而live555内部的一个locale模块调用了(见liveMeida/locale.hh),因此通过添加编译选项把它去掉,在COMPILE_OPTS中添加:

-DLOCALE_NOT_USED

而hisiv400使用的是Glibc,不需要添加此选项。

使用GCC3.0或更高版本编译时,在CPLUSPLUS_FLAGS中添加:

-Wno-deprecated

使用过时的特性时不要给出警告。

在使用海思芯片时,编译板端软件,需要根据SDK中的说明添加对应的FLAGS:

-mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations

将config.armhisiv300linux修改为config.,并将文件的第一句修改为

CROSS_COMPILE?=     <os-platform-toolchain>

然后运行

./genMakefiles <os-platform>

其中是您的目标平台 - 例如,由“config。 ”文件定义的“linux”或“solaris” 。这将在“live”目录和每个子目录中生成一个Makefile。然后运行“make”。

6. 应用实例

待续

*本文仅代表作者观点,不代表易百纳技术社区立场。系作者授权易百纳技术社区发表,未经许可不得转载。

精彩评论

内容存在敏感词
打赏
打赏作者
ezreal_cs
您的支持将鼓励我继续创作!
金额:
¥1 ¥5 ¥10 ¥50 ¥100
支付方式:
微信支付
支付宝支付
微信支付
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区