【问题标题】:Error when trying to linking libcurl in static尝试在静态中链接 libcurl 时出错
【发布时间】:2022-01-20 00:46:30
【问题描述】:

我是 C++ 新手,在 static 中链接 libcurl 时遇到问题,我下载了源代码并自己构建:

./configure && make install

一切正常,我编写了我的 cmake 文件,构建了我的程序并运行,它正在工作,所以我尝试静态链接,我遇到了很多关于 sslthread 的错误strong>,所以我回到文档中,发现我可以在没有 ssl 和线程的情况下构建(https://curl.se/docs/install.html),我决定删除以前的安装并使用下一个命令重新构建:

./configure --without-ssl --disable-thread && make install

在动态链接中它可以工作,但在静态链接中也有同样的问题......我只是找不到解决问题的方法。 看到“未定义对 Curl_thread_create 的引用”中的错误,但我构建了没有线程的库,并且包含了所有 Curl 头文件!我迷路了

这是我工作区的照片picture

感谢您的帮助

【问题讨论】:

  • 请将错误、cmake等数据以文字形式发布,而不是带文字的图片。否则你的问题将被否决。

标签: c++ static linker-errors libcurl static-linking


【解决方案1】:

如果您将应用与静态 libcurl.a 链接,则必须将您的应用与将与动态 libcurl.so 链接的所有其他库链接。您需要使用以下标志构建和链接您的应用程序:

target_compile_options($(CMAKE_PROJECT_NAME) -pthread)
target_link_libraries($(CMAKE_PROJECT_NAME) curl pthread z)

也许问题中未显示的错误的其他标志是必需的。

【讨论】:

  • 非常感谢
猜你喜欢
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
  • 2011-10-23
  • 2011-01-21
  • 1970-01-01
  • 2011-11-08
  • 1970-01-01
  • 2014-10-31
相关资源
最近更新 更多