错误:字段'ctx'的类型不完整EVP_CIPHER_CTX

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误:字段'ctx'的类型不完整EVP_CIPHER_CTX相关的知识,希望对你有一定的参考价值。

问题:我需要将Cepstral(tts引擎)安装到运行Debian 8的Freeswitch中.Freeswitch已经启动并运行,但是我需要从源代码构建它以便创建mod_cepstral模块。

当我运行make时,这是我得到的错误:

In file included from ./crypto/include/prng.h:17:0,
                 from ./crypto/include/crypto_kernel.h:50,
                 from ./include/srtp.h:53,
                 from srtp/srtp.c:46:
./crypto/include/aes_icm_ossl.h:66:20: error: field ‘ctx’ has incomplete type
     EVP_CIPHER_CTX ctx;
                    ^~~
In file included from srtp/srtp.c:50:0:
./crypto/include/aes_gcm_ossl.h:58:18: error: field ‘ctx’ has incomplete type
   EVP_CIPHER_CTX ctx;
                  ^~~
Makefile:646: recipe for target 'srtp.lo' failed
make[1]: *** [srtp.lo] Error 1
make[1]: Leaving directory '/usr/src/freeswitch/libs/srtp'
Makefile:3931: recipe for target 'libs/srtp/libsrtp.la' failed
make: *** [libs/srtp/libsrtp.la] Error 2

我一直在寻找解决方案的互联网,但我不是开发人员,这是我的头脑。任何帮助,将不胜感激。

答案
wget https://github.com/cisco/libsrtp/archive/v2.1.0.tar.gz
tar xfv v2.1.0.tar.gz
cd libsrtp-2.1.0
./configure --prefix=/usr --enable-openssl
make shared_library && sudo make install

获取最新版本的libsrtp

另一答案

似乎存在对OpenSSL的依赖,但您使用的OpenSSL版本是不兼容的。您正在使用OpenSSL 1.1.0,但您需要使用OpenSSL 1.0.2

另一答案

在Cepstral的支持下,我们确定Jessie(Debian 8)尚未完全兼容。我用Debian 7重建了服务器,现在工作正常。

以上是关于错误:字段'ctx'的类型不完整EVP_CIPHER_CTX的主要内容,如果未能解决你的问题,请参考以下文章

无法找到'org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder'类型的bean

使用不完整类型'DIR'无效

500 : 服务器错误DataTableSQL Error: 在将 varchar 值 'A03' 转换成数据类型 int 时失败。啥问题?

在Oracle数据库中怎么将一个14个数字转化为一个完整的时间

我要完整的DELPHI编译错误信息。

oracle case语数据类型不一致问题