本文介绍如何交叉编译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.cpp和makefile_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都被随机映射到不同的虚地址上,加大了被破解的难度