live555 imx6ul交叉编译静态库和动态库

文章描述了如何在ARM架构的Linux系统上,使用特定版本的GCC交叉编译器对Live555库进行配置,以生成静态库和动态库。配置涉及到CROSS_COMPILE路径的设定、编译选项、链接库路径以及版本信息。执行genMakefilesimx6ul、make和makeinstall命令后,可以得到libBasicUsageEnvironment、libgroupsock、libliveMedia和libUsageEnvironment四个库的静态版本。动态库的配置也进行了说明,包括版本号和库文件的软链接创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以live.2023.01.11为例,进入源码目录:

cp config.armlinux config.imx6ul

原始内容:

CROSS_COMPILE?=		arm-elf-
COMPILE_OPTS =		$(INCLUDES) -I/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
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 = -lssl -lcrypto
LIBS_FOR_GUI_APPLICATION =
EXE =

修改后如下:

CROSS_COMPILE?=		/home/ctools/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
COMPILE_OPTS =		$(INCLUDES) -I/opt/imx6ul_libs/openssl-1.0.2t/include -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
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 = -L/opt/imx6ul_libs/openssl-1.0.2t/lib -lssl -lcrypto
LIBS_FOR_GUI_APPLICATION =
EXE =
PREFIX=/opt/build_live555

输入

./genMakefiles imx6ul
make
make install

即可得到4个静态库

libBasicUsageEnvironment.a
libgroupsock.a
libliveMedia.a
libUsageEnvironment.a

参考config.linux-with-shared-libraries修改,编译动态库配置:

libliveMedia_VERSION_CURRENT=109
libliveMedia_VERSION_REVISION=4
libliveMedia_VERSION_AGE=2
libliveMedia_LIB_SUFFIX=so.$(shell expr $(libliveMedia_VERSION_CURRENT) - $(libliveMedia_VERSION_AGE)).$(libliveMedia_VERSION_AGE).$(libliveMedia_VERSION_REVISION)

libBasicUsageEnvironment_VERSION_CURRENT=2
libBasicUsageEnvironment_VERSION_REVISION=0
libBasicUsageEnvironment_VERSION_AGE=0
libBasicUsageEnvironment_LIB_SUFFIX=so.$(shell expr $(libBasicUsageEnvironment_VERSION_CURRENT) - $(libBasicUsageEnvironment_VERSION_AGE)).$(libBasicUsageEnvironment_VERSION_AGE).$(libBasicUsageEnvironment_VERSION_REVISION)

libUsageEnvironment_VERSION_CURRENT=4
libUsageEnvironment_VERSION_REVISION=0
libUsageEnvironment_VERSION_AGE=1
libUsageEnvironment_LIB_SUFFIX=so.$(shell expr $(libUsageEnvironment_VERSION_CURRENT) - $(libUsageEnvironment_VERSION_AGE)).$(libUsageEnvironment_VERSION_AGE).$(libUsageEnvironment_VERSION_REVISION)

libgroupsock_VERSION_CURRENT=31
libgroupsock_VERSION_REVISION=10
libgroupsock_VERSION_AGE=1
libgroupsock_LIB_SUFFIX=so.$(shell expr $(libgroupsock_VERSION_CURRENT) - $(libgroupsock_VERSION_AGE)).$(libgroupsock_VERSION_AGE).$(libgroupsock_VERSION_REVISION)
#####

CROSS_COMPILE?=		/home/ctools/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
COMPILE_OPTS =		$(INCLUDES) -I/opt/imx6ul_libs/openssl-1.0.2t/include -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -fPIC
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 =		-L. $(LDFLAGS)
CONSOLE_LINK_OPTS =	$(LINK_OPTS)
LIBRARY_LINK =		$(CROSS_COMPILE)gcc -o 
LIBRARY_LINK_OPTS =	$(LINK_OPTS)
SHORT_LIB_SUFFIX =	so.$(shell expr $($(NAME)_VERSION_CURRENT) - $($(NAME)_VERSION_AGE))
LIB_SUFFIX =	 	$(SHORT_LIB_SUFFIX).$($(NAME)_VERSION_AGE).$($(NAME)_VERSION_REVISION)
LIBRARY_LINK_OPTS =	-shared -Wl,-soname,$(NAME).$(SHORT_LIB_SUFFIX) $(LDFLAGS)
LIBS_FOR_CONSOLE_APPLICATION = -L/opt/imx6ul_libs/openssl-1.0.2t/lib -lssl -lcrypto
LIBS_FOR_GUI_APPLICATION =
EXE =
LIBS_FOR_LIVEMEDIA_LIB = -L/opt/imx6ul_libs/openssl-1.0.2t/lib -lssl -lcrypto
PREFIX=/opt/build_live555
INSTALL2 =		install_shared_libraries

得到


libBasicUsageEnvironment.so -> libBasicUsageEnvironment.so.2.0.0
libBasicUsageEnvironment.so.2 -> libBasicUsageEnvironment.so.2.0.0
libBasicUsageEnvironment.so.2.0.0
libgroupsock.so -> libgroupsock.so.30.1.10
libgroupsock.so.30 -> libgroupsock.so.30.1.10
libgroupsock.so.30.1.10
libliveMedia.so -> libliveMedia.so.107.2.4
libliveMedia.so.107 -> libliveMedia.so.107.2.4
libliveMedia.so.107.2.4
libUsageEnvironment.so -> libUsageEnvironment.so.3.1.0
libUsageEnvironment.so.3 -> libUsageEnvironment.so.3.1.0
libUsageEnvironment.so.3.1.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值