尝试在Fedora14计算机上编译“gloox”库时收到此错误消息。
tlsopensslserver.cpp:248:8: warning: unused parameter âis_exportâ
tlsopensslserver.cpp: In member function âvirtual bool gloox::OpenSSLServer::privateInit()â:
tlsopensslserver.cpp:257:5: error: âEC_KEY_new_by_curve_nameâ was not declared in this scope
make[3]: *** [tlsopensslserver.lo] Error 1
make[3]: Leaving directory `/root/Documents/RMSAgent/gloox-1.0/src'
在Ubuntu机器上成功编译了相同的代码。
openssl-devel包在Fedora机器上可用。
请帮我解决这个问题。
答案 0 :(得分:1)
gloox中的此代码需要一个支持椭圆曲线加密(ECC)的OpenSSL版本。由于知识产权问题,Fedora / Redhat发布了一个没有ECC支持的OpenSSL版本。 Gloox应该将ECC相关代码包装在
中#ifndef OPENSSL_NO_EC
// ECC related OpenSSL calls
#endif
使用OpenSSL的预处理器定义,或使用autoconf检测OpenSSL中的ECC支持,并使用自动配置的条件来支持禁用ECC的OpenSSL。
或者,您可以在启用ECC的情况下构建自己的OpenSSL,并针对此构建gloox。