c - 在 ubuntu 12.04 上制作 openwsman 时出错

标签 c linux linker-errors building openwsman

我正在尝试在 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 链接,这解决了链接器错误。

希望这个答案能帮助别人比我更快地解决这个问题。

关于c - 在 ubuntu 12.04 上制作 openwsman 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15634322/

相关文章:

c - 从套接字中读取一行

c++ - Winsock编程

c++ - Boost::Ubuntu 上的系统链接错误

c - 马尔可夫链。实现添加方法

c - 在 Linux 中从子进程修改全局变量

linux - 为什么在尝试启动 tomcat 并将 std 写入文本文件时得到 “permission denied”?

linux - Bash 目录扁平化和重命名

Python SIGINT 不终止调用 shell

c++ - 错误 LNK2019 : unresolved external symbol (libJPEG compiling and linking)

c - 杀戮和收获过程