AWS Kinesis Video Streams C SDK无法链接C++程序求助
解决方案:AWS Kinesis Video Streams WebRTC SDK C++ 头文件缺失问题
问题根源
你遇到的头文件缺失错误,是因为Kinesis Video Streams WebRTC SDK依赖核心Producer SDK子模块,但你编译自己的C++程序时,仅添加了WebRTC SDK自身的头文件路径,没有包含子模块的头文件目录。缺失的com/amazonaws/kinesis/video/client/Include.h实际存放在WebRTC SDK的submodules/amazon-kinesis-video-streams-producer-sdk-c目录中。
分步解决
1. 确认子模块已正确拉取
首先检查WebRTC SDK目录下的子模块是否完整:
cd amazon-kinesis-video-streams-webrtc-sdk-c # 检查子模块目录是否存在 ls submodules/amazon-kinesis-video-streams-producer-sdk-c/src/include/com/amazonaws/kinesis/video/client/
如果目录为空或不存在,重新同步并拉取子模块:
git submodule sync git submodule update --init --recursive
2. 修正手动编译命令
修改你的clang++编译命令,添加子模块的头文件路径,并补充依赖的核心库(WebRTC SDK依赖Producer SDK的库文件):
clang++ -std=c++17 main.cpp -o main `pkg-config --cflags --libs opencv4` \ -I/Users/.../sample/amazon-kinesis-video-streams-webrtc-sdk-c/src/include \ -I/Users/.../sample/amazon-kinesis-video-streams-webrtc-sdk-c/submodules/amazon-kinesis-video-streams-producer-sdk-c/src/include \ -L/Users/.../sample/amazon-kinesis-video-streams-webrtc-sdk-c/build \ -Wl,-rpath,/Users/.../sample/amazon-kinesis-video-streams-webrtc-sdk-c/build \ -lkvsWebrtcClient -lkvsWebrtcSignalingClient -lkvsProducerClient -lkvsCommon
注意:将路径中的
...替换为你实际的本地路径
3. 推荐使用CMake管理项目(适合C/C++新手)
手动敲编译命令容易出错,用CMake可以自动处理依赖路径和库链接:
创建CMakeLists.txt文件,内容如下:
cmake_minimum_required(VERSION 3.10) project(kvs_webrtc_video_call) set(CMAKE_CXX_STANDARD 17) # 查找OpenCV依赖 find_package(OpenCV 4 REQUIRED) # 添加KVS SDK相关头文件路径 include_directories( /Users/.../sample/amazon-kinesis-video-streams-webrtc-sdk-c/src/include /Users/.../sample/amazon-kinesis-video-streams-webrtc-sdk-c/submodules/amazon-kinesis-video-streams-producer-sdk-c/src/include ) # 添加KVS SDK库文件路径 link_directories(/Users/.../sample/amazon-kinesis-video-streams-webrtc-sdk-c/build) # 构建可执行文件 add_executable(main main.cpp) # 链接所有依赖库 target_link_libraries(main ${OpenCV_LIBS} kvsWebrtcClient kvsWebrtcSignalingClient kvsProducerClient kvsCommon )
然后编译你的项目:
mkdir build && cd build cmake .. make
内容的提问来源于stack exchange,提问作者bodi87
相关产品推荐
相关产品推荐

