尝试以静态方式链接 libcurl 时出错

Error when trying to linking libcurl in static

我是 C++ 的新手,我在 static 中遇到了关于 linking libcurl 的问题,我下载了源代码并自己构建了它:

./configure && make install

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

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

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

这是我工作区的照片picture

感谢您的帮助

如果您 link 您的应用程序使用静态 libcurl.a,您必须 link 您的应用程序与所有其他库 link 使用动态 [=]ed =16=]。您需要使用以下标志构建和 link 您的应用程序:

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

也许还需要针对问题中未显示的错误的其他标记。