1

尝试在 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 机器上可用。

请帮我解决这个问题。

4

1 回答 1

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。

于 2013-02-10T12:25:33.537 回答