我正在尝试在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链接,这可以解决链接器错误。
希望这个答案可以帮助某人比我更快地解决此问题。