先下载live555源码
wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz
解压
tar xzvf live555-latest.tar.gz
将config.linux 文件复制一份为config.hi3519
COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
C = c
C_COMPILER = arm-hisiv600-linux-gcc
C_FLAGS = $(COMPILE_OPTS) $(CPPFLAGS) $(CFLAGS)
CPP = cpp
CPLUSPLUS_COMPILER = arm-hisiv600-linux-g++
CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 $(CPPFLAGS) $(CXXFLAGS)
OBJ = o
LINK = arm-hisiv600-linux-g++ -o
LINK_OPTS = -L. $(LDFLAGS)
CONSOLE_LINK_OPTS = $(LINK_OPTS)
LIBRARY_LINK = arm-hisiv600-linux-ar cr
IBRARY_LINK_OPTS =
LIB_SUFFIX = a
LIBS_FOR_CONSOLE_APPLICATION =
LIBS_FOR_GUI_APPLICATION =
EXE =
保存
执行 genMakefiles hi3519
make
即编译完成
若出现
make[1]: Entering directory ‘/home/work/c8/live/testProgs’
arm-hisiv500-linux-g++ -otestMPEG4VideoStreamer -L. testMPEG4VideoStreamer.o …/liveMedia/libliveMedia.a …/groupsock/libgroupsock.a …/BasicUsageEnvironment/libBasicUsageEnvironment.a …/UsageEnvironment/libUsageEnvironment.a
…/liveMedia/libliveMedia.a(Locale.o): In function Locale::~Locale()': Locale.cpp:(.text+0x20): undefined reference to
uselocale’
Locale.cpp:(.text+0x28): undefined reference to freelocale' ../liveMedia/libliveMedia.a(Locale.o): In function
Locale::Locale(char const*, LocaleCategory)’:
Locale.cpp:(.text+0x80): undefined reference to newlocale' Locale.cpp:(.text+0x88): undefined reference to
uselocale’
collect2: error: ld returned 1 exit status
系统跟local相关的函数都没有,根据liveMedia/include/Locale.hh提示修改config.hi3519给COMPILE_OPTS 添加-DLOCALE_NOT_USED。
即
COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
改成
COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DLOCALE_NOT_USED
即可编译通过