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

来源:互联网 发布:阿里云 消息推送 编辑:程序博客网 时间:2024/05/22 10:57

接着上篇文章来讲,参看: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=64C =cC_COMPILER =$(CROSS_COMPILE)gccC_FLAGS =$(COMPILE_OPTS)CPP =cppCPLUSPLUS_COMPILER =$(CROSS_COMPILE)g++CPLUSPLUS_FLAGS =$(COMPILE_OPTS) -Wall -DBSD=1OBJ =oLINK =$(CROSS_COMPILE)g++ -oLINK_OPTS =CONSOLE_LINK_OPTS =$(LINK_OPTS)LIBRARY_LINK =$(CROSS_COMPILE)ar cr LIBRARY_LINK_OPTS =$(LINK_OPTS)LIB_SUFFIX =aLIBS_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.hi3516aCROSS_COMPILE?=arm-hisiv300-linux-COMPILE_OPTS =$(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64C =cC_COMPILER =$(CROSS_COMPILE)gccC_FLAGS =$(COMPILE_OPTS)CPP =cppCPLUSPLUS_COMPILER =$(CROSS_COMPILE)g++CPLUSPLUS_FLAGS =$(COMPILE_OPTS) -Wall -DBSD=1 -DLOCALE_NOT_USEDOBJ =oLINK =$(CROSS_COMPILE)g++ -oLINK_OPTS =CONSOLE_LINK_OPTS =$(LINK_OPTS)LIBRARY_LINK =$(CROSS_COMPILE)ar cr LIBRARY_LINK_OPTS =$(LINK_OPTS)LIB_SUFFIX =aLIBS_FOR_CONSOLE_APPLICATION =LIBS_FOR_GUI_APPLICATION =EXE =

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

执行:  ./genMakefiles dm368

运行:  make clean && make

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

四、测试

将 live555MediaServer 拷贝到开发板上:

tftp -g -r live555MediaServer 192.168.x.xx

更改权限:

chmod 777 live555MediaServer 

执行 live555MediaServer 

./live555MediaServer 


然后找一个视频文件,放在和 live555MediaServer同一目录。注意视频格式,要是上面所支持的。
然后打开 VLC,媒体->打开网络串流,输入网络URL。 rtsp://电脑IP地址/<filename>