0
点赞
收藏
分享

微信扫一扫

LIVE555再学习 -- DM368/Hi3516A 交叉编译


接着上篇文章来讲,参看:LIVE555再学习 -- Linux 下编译

下载源码、文件介绍部分不再介绍。主要看配置编译部分。

三、配置编译

DM368 的交叉编译器为 arm-none-linux-gnueabi-gcc 

如果您的目标平台没有“config.<os-platform>”文件,请尝试使用其中一个现有文件作为模板

因此我们创建一个config.dm368,内容可以参考config.armlinux


# cat config.dm368 
CROSS_COMPILE?=		arm-none-linux-gnueabi-
COMPILE_OPTS =		$(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
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 =
LIBS_FOR_GUI_APPLICATION =
EXE =

==============================================================================

修改说明:

参看:hi3507/hi3515交叉编译live555

第一个 CROSS_COMPILE 好理解更改为交叉编译器

第二个 CPLUSPLUS_FLAGS 

在 dm368 上操作不做改变是没有问题的

但是在 Hi3516A 上就不是这样了,会出现错误:


In file included from MPEG4GenericRTPSink.cpp:22:0:
include/Locale.hh:47:123: fatal error: xlocale.h:没有那个文件或目录
 #include <xlocale.h> // because, on some systems, <locale.h> doesn't include <xlocale.h>; 
this makes sure that we get both

这个是由于海思使用的是 uClinux,并没有 xlocale.h 这个头文件。

而 live555 内部的一个 locale 模块调用了(见liveMeida/locale.hh),因此通过编译选项把他去掉。

在编译选项上加入 -DLOCALE_NOT_USED 把此模块去掉。


# cat config.hi3516a
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
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 -DLOCALE_NOT_USED
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 =

==============================================================================

执行:./genMakefiles dm368

运行:  make clean && make

然后可以看到 mediaServer 目录下生成文件 live555MediaServer

LIVE555再学习 -- DM368/Hi3516A 交叉编译_g++

四、测试

将 live555MediaServer 拷贝到开发板上:

tftp -g -r live555MediaServer 192.168.x.xx

更改权限:

chmod 777 live555MediaServer 

执行 live555MediaServer 

./live555MediaServer 

LIVE555再学习 -- DM368/Hi3516A 交叉编译_linux_02

然后找一个视频文件,放在和 live555MediaServer同一目录。注意视频格式,要是上面所支持的。

然后打开 VLC,媒体->打开网络串流,输入网络URL。 rtsp://电脑IP地址/<filename>

LIVE555再学习 -- DM368/Hi3516A 交叉编译_g++_03


LIVE555再学习 -- DM368/Hi3516A 交叉编译_交叉编译器_04


举报

相关推荐

0 条评论