AWS KVS(Kinesis Video Streams)之WebRTC移植编译(五)

在使用KVS完整的WebRTC的SDK(包括信令、STUN/TURN等),我们还需要编译(详见SDK的依赖项)如下两个库

1、amazon-kinesis-video-streams-producer-c中的libkvsCommonLws.a

编译君正平台:

我们在下载的源码目录中新建如下三个目录:

Bin/T31X :存放生成的库

Build/T31X: 编译脚本

Library/T31X:依赖项

CMakeLists.txt内容如下:

#***************************This is Project Info****************************
PROJECT(kvsCommonLws)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

#****************************This is Compile Flag****************************
 
ADD_DEFINITIONS("-Wall -fPIC")
ADD_DEFINITIONS("-Wl,-Bsymbolic -lm")
ADD_DEFINITIONS("-std=c++11")
ADD_DEFINITIONS("-DLIBSKYAPI_EXPORTS")
ADD_DEFINITIONS("-DLIBAVXLOG_HAVE_AVXLOG=0")
ADD_DEFINITIONS("-DKVS_USE_OPENSSL=1")
ADD_DEFINITIONS("-DKVS_BUILD_WITH_LWS=1")

SET(CMAKE_CXX_FLAGS "-Wall -s -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -fomit-frame-pointer -fvisibility=hidden -ffunction-sections -fdata-sections -Wl,-Bsymbolic -lm -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS")

#****************************This is Compiling environment Flag****************************
SET(CMAKE_SYSTEM_NAME linux)
SET(TOOLCHAIN_DIR "/opt/mips-gcc472-glibc216-64bit")
SET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_DIR})
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/mips-linux-uclibc-gnu-gcc)
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/mips-linux-uclibc-gnu-g++)

#****************************This is Include File/Directories****************************
#INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/)
INCLUDE_DIRECTORIES(../../)
INCLUDE_DIRECTORIES(../../Library/T31X/include)
INCLUDE_DIRECTORIES(../../Library/T31X/include/client/include)
INCLUDE_DIRECTORIES(../../Library/T31X/include/utils/include)
INCLUDE_DIRECTORIES(../../Library/T31X/include/mkvgen/include)
INCLUDE_DIRECTORIES(../../Library/T31X/include/view/include)
INCLUDE_DIRECTORIES(../../Library/T31X/include/heap/include)
INCLUDE_DIRECTORIES(../../Library/T31X/include/state/include)

INCLUDE_DIRECTORIES(../../src)
INCLUDE_DIRECTORIES(../../src/include)
INCLUDE_DIRECTORIES(../../src/source/)
INCLUDE_DIRECTORIES(../../src/source/Common)
INCLUDE_DIRECTORIES(../../src/source/Common/Lws)

INCLUDE_DIRECTORIES(../../Library/T31X/include)
INCLUDE_DIRECTORIES(../../Library/T31X/include/common)
INCLUDE_DIRECTORIES(../../Library/T31X/include/common/include)


#****************************This is Source File/Directories****************************

AUX_SOURCE_DIRECTORY(../../src/source/Common Common_SRCS)
AUX_SOURCE_DIRECTORY(../../src/source/Common/Lws Lws_SRCS)

SET(DIR_SRCS ${Common_SRCS} ${Lws_SRCS})



#****************************This is Library Directories****************************

LINK_DIRECTORIES(../../Library/T31X/lib)


#****************************This is 3Party Library****************************
LINK_LIBRARIES(libkvspic.a libkvspicClient.a libkvspicState.a libkvspicUtils.a libwebsockets.a dl)

#****************************This is Output Directory****************************
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../../Bin/T31X)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../../Bin/T31X)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../../Bin/T31X)

#****************************This is Output Library****************************
ADD_LIBRARY(${PROJECT_NAME} STATIC  ${DIR_SRCS} )
TARGET_LINK_LIBRARIES(${PROJECT_NAME} libkvspic.a libkvspicClient.a libkvspicState.a libkvspicUtils.a libwebsockets.a dl)

2、amazon-kinesis-video-streams-webrtc-sdk-c中的libkvsWebrtcSignalingClient.so

我们新建三个目录:

在Build/T31X下新建SignalingClient目录,存放编译脚本:libkvsWebrtcClient.so详见编译

如下是libkvsWebrtcSignalingClient.so的编译脚本(CMakeLists.txt):

#***************************This is Project Info****************************
PROJECT(kvsWebrtcSignalingClient)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

#****************************This is Compile Flag****************************
 

ADD_DEFINITIONS("-Wall")
ADD_DEFINITIONS("-Wl,-Bsymbolic -lm")
ADD_DEFINITIONS("-std=c++11")
ADD_DEFINITIONS("-DLIBSKYAPI_EXPORTS")
ADD_DEFINITIONS("-DLIBAVXLOG_HAVE_AVXLOG=0")
ADD_DEFINITIONS("-DKVS_USE_OPENSSL=1")
ADD_DEFINITIONS("-DKVS_BUILD_WITH_LWS=1")

SET(CMAKE_CXX_FLAGS "-Wall -s -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -fomit-frame-pointer -fvisibility=hidden -ffunction-sections -fdata-sections -Wl,-Bsymbolic -lm -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS")

#****************************This is Compiling environment Flag****************************
SET(CMAKE_SYSTEM_NAME linux)
SET(TOOLCHAIN_DIR "/opt/mips-gcc472-glibc216-64bit")
SET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_DIR})
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/mips-linux-uclibc-gnu-gcc)
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/mips-linux-uclibc-gnu-g++)

#****************************This is Include File/Directories****************************
#INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/)
#INCLUDE_DIRECTORIES(../../../include/)
INCLUDE_DIRECTORIES(../../../Library/T31X/include)
INCLUDE_DIRECTORIES(../../../Library/T31X/include/client/include)
INCLUDE_DIRECTORIES(../../../Library/T31X/include/utils/include)
INCLUDE_DIRECTORIES(../../../Library/T31X/include/mkvgen/include)
INCLUDE_DIRECTORIES(../../../Library/T31X/include/view/include)
INCLUDE_DIRECTORIES(../../../Library/T31X/include/heap/include)
INCLUDE_DIRECTORIES(../../../Library/T31X/include/state/include)
INCLUDE_DIRECTORIES(../../../Library/T31X/include/common/include)


INCLUDE_DIRECTORIES(../../../src)
INCLUDE_DIRECTORIES(../../../src/include)
INCLUDE_DIRECTORIES(../../../src/source/)
INCLUDE_DIRECTORIES(../../../src/source/Signaling/)

INCLUDE_DIRECTORIES(../../../Library/T31X/include)
INCLUDE_DIRECTORIES(../../../Library/T31X/include/common)
INCLUDE_DIRECTORIES(../../../Library/T31X/include/common/include)


#****************************This is Source File/Directories****************************

SET(LIBSDK_DIRS  ../../../src/source)
SET(Single_SRCS     ${LIBSDK_DIRS}/Signaling/ChannelInfo.c
                	${LIBSDK_DIRS}/Signaling/Client.c
					${LIBSDK_DIRS}/Signaling/FileCache.c
					${LIBSDK_DIRS}/Signaling/LwsApiCalls.c
					${LIBSDK_DIRS}/Signaling/Signaling.c
					${LIBSDK_DIRS}/Signaling/StateMachine.c

				)
				 
SET(DIR_SRCS ${Single_SRCS} )

#****************************This is Library Directories****************************

LINK_DIRECTORIES(../../../Library/T31X/lib)

#****************************This is 3Party Library****************************
LINK_LIBRARIES( kvspicState kvspicUtils crypto ssl libkvsCommonLws.a libwebsockets.a pthread )

#****************************This is Output Directory****************************
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../../../Bin/T31X)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../../../Bin/T31X)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../../../Bin/T31X)

#****************************This is Output Library****************************
ADD_LIBRARY(${PROJECT_NAME} SHARED ${DIR_SRCS} )
TARGET_LINK_LIBRARIES(${PROJECT_NAME} kvspicState kvspicUtils crypto ssl libkvsCommonLws.a libwebsockets.a pthread )

编译结果如下:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值