Amazon KVS WebRTC with C SDK

asked 2023-05-06 03:51:43 -0500

djangbahevans gravatar image

This is not necessarily ROS specific, but I'm trying to stream to Amazon KVS WebRTC using their C SDK. However, I'm unsure how to configure the CMakeLists.txt to use their compiled static libraries. This is what I managed to do:

set(libkvsWebrtcSignalingClient_INCLUDE_DIRS
  $ENV{HOME}/amazon-kinesis-video-streams-webrtc-sdk-c/src/include
)
set(libkvsWebrtcSignalingClient_LIBRARIES
  $ENV{HOME}/amazon-kinesis-video-streams-webrtc-sdk-c/build/libkvsWebrtcSignalingClient.a
)
set(libkvsWebrtcClient_INCLUDE_DIRS
  $ENV{HOME}/amazon-kinesis-video-streams-webrtc-sdk-c/src/include
)
set(libkvsWebrtcClient_LIBRARIES
  $ENV{HOME}/amazon-kinesis-video-streams-webrtc-sdk-c/build/libkvsWebrtcClient.a
)
set(openSource_INCLUDE_DIRS
  $ENV{HOME}/amazon-kinesis-video-streams-webrtc-sdk-c/open-source/include
)

# target_link_libraries(caytu_stream PRIVATE ssl crypto)

add_library(libkvsWebrtcClient STATIC IMPORTED)
set_target_properties(libkvsWebrtcClient PROPERTIES IMPORTED_LOCATION ${libkvsWebrtcClient_LIBRARIES})

add_library(libkvsWebrtcSignalingClient STATIC IMPORTED)
set_target_properties(libkvsWebrtcSignalingClient PROPERTIES IMPORTED_LOCATION ${libkvsWebrtcSignalingClient_LIBRARIES})

# add_library(libcrypto STATIC IMPORTED)
# set_target_properties(libcrypto PROPERTIES IMPORTED_LOCATION $ENV{HOME}/amazon-kinesis-video-streams-webrtc-sdk-c/open-source/lib/libcrypto.a)

# add_library(libssl STATIC IMPORTED)
# set_target_properties(libssl PROPERTIES IMPORTED_LOCATION $ENV{HOME}/amazon-kinesis-video-streams-webrtc-sdk-c/open-source/lib/libssl.a)

target_link_libraries(caytu_stream libkvsWebrtcSignalingClient libkvsWebrtcClient)

include_directories(
  ${libkvsWebrtcSignalingClient_INCLUDE_DIRS}
  ${libkvsWebrtcClient_INCLUDE_DIRS}
  ${openSource_INCLUDE_DIRS})

However, doing this gives me this error:

/usr/bin/ld: /home/evans/amazon-kinesis-video-streams-webrtc-sdk-c/build/libkvsWebrtcClient.a(Dtls_openssl.c.o): undefined reference to symbol 'EVP_PKEY_new@@OPENSSL_1_1_0'
//usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
caytu-stream/caytu_stream/CMakeFiles/caytu_stream.dir/build.make:161: recipe for target '/home/evans/catkin_ws/devel/lib/caytu_stream/caytu_stream' failed
make[2]: *** [/home/evans/catkin_ws/devel/lib/caytu_stream/caytu_stream] Error 1
CMakeFiles/Makefile2:1259: recipe for target 'caytu-stream/caytu_stream/CMakeFiles/caytu_stream.dir/all' failed
make[1]: *** [caytu-stream/caytu_stream/CMakeFiles/caytu_stream.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed

I'm not sure how to change the CMakeLists.txt to resolve this issue.

edit retag flag offensive close merge delete