在前面我已经将君正T31X平台的WebRTC相关的依赖库编译完成,且现在将kvsWebrtcClientMaster测试用例也需要编译出来,在Camera中运行,验证依赖库的正确性。
根据自己编写的CMakeLists.txt,编译成功后,在camera上执行:
(1)将依赖的动态库和程序放在SD卡;
(2)设置编辑变量的值
export AWS_ACCESS_KEY_ID=XX
export AWS_SECRET_ACCESS_KEY=XX
export DEBUG_LOG_SDP=debug
export AWS_KVS_LOG_LEVEL=2
export AWS_KVS_CACERT_PATH=XX
export LD_LIBRARY_PATH=XX
(3)执行 ./kvsWebrtcClientMaster channelName
1、报错问题 "Floating point exception"
报错位置:是initKvsWebRtc接口中调用的 KVS_CRYPTO_INIT();
#define KVS_CRYPTO_INIT() \
do { \
OpenSSL_add_ssl_algorithms(); \
SSL_load_error_strings(); \
SSL_library_init(); \
} while (0)
主要是调用Openssl中的接口问题,需要重新编译openssl(目前使用openssl1.1.1g)
2、报错如下
解决办法:根据提示的错误信息,找到源码,查看源码后,发现一个变量需要定义(DLWS_HAVE_X509_VERIFY_PARAM_set1_host)重新编译libwebsockets,替换掉openssl的动态库等;
3、系统时间原因
因为嵌入式设备是北京时间,在该君正T31X平台产品上运行该sample后,发现了如下信息:
将日志信息输出后,发现因为时间问题导致,因此我们将设备的时间修改为美国时区的时间,再一次运行没有问题;