Linux下LIVE555交叉编译
一、下载交叉编译需要的工具
- openssl库下载与交叉编译
- live555下载与交叉编译
- 板端应用
openssl库下载与交叉编译
下载链接:https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
tar -zxf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
mkdir -p output
./config no-asm shared no-async --prefix=${PWD}/output --cross-compile-prefix=arm-linux-xxx-
sed -i 's/-m64//g' Makefile
make;make install
cd output;pwd
- wget下载库
- 解压后进入目录并创建安装目录
- 生成编译文件,no-asm为不依赖汇编,shared为生成动态库,no-async为非异步,prefix为安装路径,cross-compile-prefix为交叉工具链头部
- 移除-m64
- 编译并安装到output目录下
- pwd查看路径,后面要用到
live555下载与交叉编译
git clone https://gitee.com/mirrors/live555.git
cd live
cp config.armlinux config.myboard ### 此处生成之后需要修改成交叉编译需要
例如:
CROSS_COMPILE?= arm-linux-xxx-
OPENSSL_PATH= #这里放置上面编译openssl输出路径,就是刚刚pwd拿到的路径,复制到这个地方#
OPENSSL_INC= $(OPENSSL_PATH)/include
OPENSSL_LIB= $(OPENSSL_PATH)/lib
LDFLAGS= -L$(OPENSSL_LIB)
USER_COMPILE_OPTS= -I$(OPENSSL_INC) -DLOCALE_NOT_USED $(LDFLAGS)
COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 $(USER_COMPILE_OPTS)
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 = $(LDFLAGS)
CONSOLE_LINK_OPTS = $(LINK_OPTS)
LIBRARY_LINK = $(CROSS_COMPILE)ar cr
LIBRARY_LINK_OPTS =
LIB_SUFFIX = a
LIBS_FOR_CONSOLE_APPLICATION = -lssl -lcrypto
LIBS_FOR_GUI_APPLICATION =
EXE =
在**USER_COMPILE_OPTS
**中,LOCALE_NOT_USED 宏定义视情况加上
在live/liveMedia/include/Locale.hh有一个描述,如下:
如果不需要使用setlocale和newlocale,就在config.*中定义这个宏
./genMakefile myboard
make
编译成功,即可。
板端应用
将mediaServer下的应用拷贝到板端,通过本地连接方式可以在PC端用vlc查看视频即可。