当前位置: 首页 > 工具软件 > eXosip > 使用案例 >

交缠编译osip2和exosip2

谢英光
2023-12-01

用的是地平线交叉编译工具链

一、说明

# 在此目录下操作
/usr/local/exosip2/
# 最终效果
root@sony-HP-Notebook:/usr/local/exosip2# ls
exosip2_horizon  libexosip2-5.1.2  libexosip2-5.1.2.tar.gz  libosip2-5.1.2  libosip2-5.1.2.tar.gz  osip2_horizon

由于exosip2依赖osip2,所以先编译osip2

二、交叉编译osip2

下载

wget http://ftp.twaren.net/Unix/NonGNU//osip/libosip2-5.1.2.tar.gz

解压

tar xvf libosip2-5.1.2.tar.gz

编译

cd libosip2-5.1.2
touch build.sh

创建arm的build.sh

#! /bin/bash

ARM_CROSS_TOOL=/home/z/cross_tool/gcc-linaro-4.9-2016.02-x86_64_arm-linux-gnueabihf/bin

SYS_LIB_DIR=$ARM_CROSS_TOOL/../arm-linux-gnueabihf/libc/usr/


export PATH=$PATH:$ARM_CROSS_TOOL

OUT_TARGET=`pwd`/../osip2_arm
mkdir -p $OUT_TARGET

export CC=$ARM_CROSS_TOOL/arm-linux-gnueabihf-gcc
export CXX=$ARM_CROSS_TOOL/arm-linux-gnueabihf-g++
export AR=$ARM_CROSS_TOOL/arm-linux-gnueabihf-ar
export LD=$ARM_CROSS_TOOL/arm-linux-gnueabihf-ld
export RANLIB=$ARM_CROSS_TOOL/arm-linux-gnueabihf-ranlib

./configure \
--host=arm-linux-gnueabihf \
--prefix=$OUT_TARGET


make -j8
make install
echo "the output files are in $OUT_TARGET"
cp -rvf $OUT_TARGET/*  $SYS_LIB_DIR


创建horizon的build.sh

#!/bin/bash

ARM_CROSS_TOOL=/usr/local/horizon/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin
# 设置生成之后拷贝到的目录可以写死/usr/local/horizon/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/lib/usr/,记得提前创建好目录,否则拷贝不过去,
# 后期作为exosip2的编译依赖
SYS_LIB_DIR=$ARM_CROSS_TOOL/../lib/usr/


export PATH=$PATH:$ARM_CROSS_TOOL

OUT_TARGET=`pwd`/../osip2_horizon
mkdir -p $OUT_TARGET

export CC=$ARM_CROSS_TOOL/aarch64-linux-gnu-gcc
export CXX=$ARM_CROSS_TOOL/aarch64-linux-gnu-g++
export AR=$ARM_CROSS_TOOL/aarch64-linux-gnu-ar
export LD=$ARM_CROSS_TOOL/aarch64-linux-gnu-ld
export RANLIB=$ARM_CROSS_TOOL/aarch64-linux-gnu-ranlib

./configure \
--host=aarch64-linux-gnu \
--prefix=$OUT_TARGET


make -j8
make install
echo "the output files are in $OUT_TARGET"
cp -rvf $OUT_TARGET/*  $SYS_LIB_DIR


编译执行

chmod +x build.sh
./build.sh

检查生成

# 位置一
root@sony-HP-Notebook:/usr/local/exosip2/osip2_horizon# ls
include  lib  share

三、交叉编译exosip2

下载

wget http://download.savannah.nongnu.org/releases/exosip/libexosip2-5.1.2.tar.gz

解压

tar xvf libexosip2-5.1.2.tar.gz

编译

注意:编译涉及到libosip2,需要将交叉编译的osip2库放到交叉编译器的libc/usr中,否则会出现osipparser2/osip_message.h: No such file or directory编译错误。libosip2的交叉编译见https://blog.csdn.net/weixin_43479963/article/details/109494578

创建arm的build.sh

#! /bin/bash

ARM_CROSS_TOOL=/home/z/cross_tool/gcc-linaro-4.9-2016.02-x86_64_arm-linux-gnueabihf/bin

SYS_LIB_DIR=$ARM_CROSS_TOOL/../libc/usr/

OSIP2_LIB_DIR=/data/project/scm/gb28181/src/libosip2/osip2_arm

export PATH=$PATH:$ARM_CROSS_TOOL

OUT_TARGET=`pwd`/../exosip2_horizon
mkdir -p $OUT_TARGET

export CC=$ARM_CROSS_TOOL/arm-linux-gnueabihf-gcc
export CXX=$ARM_CROSS_TOOL/arm-linux-gnueabihf-g++
export AR=$ARM_CROSS_TOOL/arm-linux-gnueabihf-ar
export LD=$ARM_CROSS_TOOL/arm-linux-gnueabihf-ld
export RANLIB=$ARM_CROSS_TOOL/arm-linux-gnueabihf-ranlib

./configure \
--host=arm-linux-gnueabihf \
--prefix=$OUT_TARGET \
--disable-openssl \
--enable-static \
--enable-shared

make -j8
make install
echo "the output files are in $OUT_TARGET"

创建horizon的build.sh

切记关闭–disable-openssl

build.sh内容

#!/bin/bash

ARM_CROSS_TOOL=/usr/local/horizon/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin
OSIP2_LIB_DIR=/usr/local/exosip2/osip2_horizon

export PATH=$PATH:$ARM_CROSS_TOOL

OUT_TARGET=`pwd`/../exosip2_horizon
mkdir -p $OUT_TARGET

export CC=$ARM_CROSS_TOOL/aarch64-linux-gnu-gcc
export CXX=$ARM_CROSS_TOOL/aarch64-linux-gnu-g++
export AR=$ARM_CROSS_TOOL/aarch64-linux-gnu-ar
export LD=$ARM_CROSS_TOOL/aarch64-linux-gnu-ld
export RANLIB=$ARM_CROSS_TOOL/aarch64-linux-gnu-ranlib

# 指定osip2的依赖
export C_INCLUDE_PATH=/usr/local/exosip2/osip2_horizon/include/
export LD_LIBRARY_PATH=/usr/local/exosip2/osip2_horizon/lib/

./configure \
--host=aarch64-linux-gnu \
--prefix=$OUT_TARGET \
--with-osip=/usr/local/exosip2/osip2_horizon \
--disable-openssl \
--enable-static \
--enable-shared \
OSIP_CFLAGS=-I/usr/local/exosip2/osip2_horizon/lib/include OSIP_LIBS="-L/usr/local/exosip2/osip2_horizon/lib -losip2 -losipparser2"


make -j8
make install
echo "the output files are in $OUT_TARGET"

编译执行

chmod +x build.sh
./build.sh

检查生成

# 位置一
root@sony-HP-Notebook:/usr/local/exosip2/exosip2_horizon# ls
include  lib  bin

四、交叉编译openssl(如果启用ssl)

openssl-1.1.0f编译

进入openssl-1.1.0f目录,创建bulid编译目录

mkdir build

进入build编译目录,配置编译环境

../Configure linux-elf 
    no-asm #关于汇编模块的编译,部分汇编会报错,因此关掉
    --cross-compile-prefix=aarch64-himix100-linux- #编译链前缀
    --prefix=/home/lisi/DeepGlint/dgsipserver/thirdlibs/himix100_install/openssl-1.1.0f #安装目录
    

编译,安装

make && make install
————————————————
版权声明:本文为CSDN博主「剪烛西窗」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lhf19891003/article/details/110853915

 类似资料: