Amazon KVS WebRTC with C SDK
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.
Asked by djangbahevans on 2023-05-06 03:51:43 UTC
Comments