我正在尝试在Ubunutu 12.04上构建openwsman(昨天从官方网站上下载了2.3.0)。我按照README.md中的说明进行操作,并在安装了几个其他软件包之后终于得到了成功的cmake ..命令。

但是,当我运行make时,出现以下错误:

Linking C executable test_list
../libwsman_curl_client_transport.so.1.0.0: undefined reference to `X509_digest'
../libwsman_curl_client_transport.so.1.0.0: undefined reference to `SSL_CTX_set_cert_verify_callback'
../libwsman_curl_client_transport.so.1.0.0: undefined reference to `SSL_CTX_set_verify'
../libwsman_curl_client_transport.so.1.0.0: undefined reference to `EVP_sha1'
collect2: ld returned 1 exit status
make[2]: *** [src/lib/test/test_list] Error 1
make[1]: *** [src/lib/test/CMakeFiles/test_list.dir/all] Error 2

有谁知道如何解决这个问题?

最佳答案

我终于能够解决此问题。事实证明,我需要在openwsman库中更改CMakeLists文件。

我需要更改的是与libwsman_curl_client_transport链接的库。要解决该问题,请打开文件src/lib/CMakeLists.txt(假设您位于openwsman基本目录中)并更改如下所示的行:

TARGET_LINK_LIBRARIES( wsman_curl_client_transport ${CURL_LIBRARIES})


TARGET_LINK_LIBRARIES( wsman_curl_client_transport ${CURL_LIBRARIES} ssl crypto)

在openwsman发行版中,我下载了(openwsman2.3.0),这是所描述文件的第53行。

在这里,我告诉给定的库也要与crypto和ssl链接,这可以解决链接器错误。

希望这个答案可以帮助某人比我更快地解决此问题。

09-29 21:23