libsrtp编译

machh / 2023-05-06 / 原文

srtp需要--enable-openssl

libsrtp

tar -zxvf libsrtp-2.3.0.tar.gz 
cd libsrtp-2.3.0/
sh build.sh 

build.sh

cur_dir=$(cd "$(dirname "$0")"; pwd)
parent_dir=$(dirname $(pwd))
main_dir=$(dirname ${parent_dir})

echo "cur_dir = ${cur_dir}"
echo "parent_dir = ${parent_dir}"
echo "main_dir = ${main_dir}"

/bin/rm -rf build
/bin/rm -rf CMakeCache.txt
/bin/rm -rf cmake_install.cmake

#if [ $CROSS_COMPILE_CPU ];then
#  ./configure "CFLAGS=${CMAKE_C_FLAGS}" --prefix=${cur_dir}/release  --enable-openssl --with-openssl-dir=${main_dir}/release
#else
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=${main_dir}/release \
      -DCMAKE_BUILD_TYPE=Release                  \
      -DENABLE_OPENSSL=ON                         \
      -DBUILD_SHARED_LIBS=OFF                     \
      -DOPENSSL_ROOT_DIR=${main_dir}/release/lib      \
      -DOPENSSL_INCLUDE_DIR=${main_dir}/release/include      \
      ..
#fi

make
make install

openssl

动态链接配置

使用系统自带的openssl动态库

find_package(OpenSSL REQUIRED)
if(OPENSSL_FOUND)
  include_directories(${OPENSSL_INCLUDE_DIRS})
  message(STATUS "OpenSSL Found!")
endif()


target_link_libraries(target_program ${CURL_LIBRARIES})
target_link_libraries(target_program OpenSSL::Crypto OpenSSL::SSL)

如果不想使用系统自带的openssl ,可以指定版本的openssl路径

给cmake添加下列变量:

-DOPENSSL_INCLUDE_DIR:指向 openssl-1.0 的 include 目录
-DOPENSSL_SSL_LIBRARIES:指向 openssl-1.0 的 lib 目录中的 libssl.so
-DOPENSSL_CRYPTO_LIBRARIES:指向 openssl-1.0 的 lib 目录中的 libcrypto.so

// add_definitions(-DOPENSSL_INCLUDE_DIR)

静态链接配置

添加以下的变量定义

set(OPENSSL_ROOT_DIR /home/public/openssl) 
set(OPENSSL_USE_STATIC_LIBS TRUE)


不使用cmake编译

./configure  --prefix=/home/webrtc/thirdparty/libsrtp-2.3.0/release  --enable-openssl  --with-openssl-dir=/home/webrtc/thirdparty/lib/openssl
make
make install

静态链接zlib

find_package(ZLIB REQUIRED)
if(ZLIB_FOUND)
  message(STATUS "Zlib Found!")
  include_directories(${ZLIB_INCLUDE_DIR})
endif()

target_link_libraries(target_program ${ZLIB_LIBRARIES})