首页 > 技术知识 > 正文

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

静态库的链接顺序:

live/liveMedia/libliveMedia.a live/groupsock/libgroupsock.a live/BasicUsageEnvironment/libBasicUsageEnvironment.a 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. 应用实例

待续

猜你喜欢