本文介绍如何交叉编译live555

下载代码 链接到标题

http://www.live555.com/liveMedia/public/live.2018.02.28.tar.gz

tar -zxvf live.2018.02.28.tar.gz
cd live

修改config 链接到标题

vim config.armlinux 
CROSS_COMPILE?=		arm-linux-androideabi-
COMPILE_OPTS =		$(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -pie -fPIE
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 =

编译 链接到标题

./genMakefiles armlinux
make -j

简单的rtsp server 链接到标题

将文件文件myser.cppmakefile_my放到live/liveMedia下执行(代码来源http://blog.csdn.net/gavinr/article/details/7050797)

make -f makefile_my

说明 链接到标题

使用android ndk编译出来的可执行程序如果出现"error: only position independent executables (PIE) are supported"提示,需要在makefile的编译选项中添加

-pie -fPIE

Android 4.1开始开启PIE安全机制,如果调用的可执行文件不是基于PIE方式编译的,则无法运行 -fpie(Position Independent Executable)生成的可执行文件每次执行时代码、数据、stack和heap都被随机映射到不同的虚地址上,加大了被破解的难度