gpt4 book ai didi

c++ - ld.exe 找不到 -lcurl

转载 作者:太空狗 更新时间:2023-10-29 23:20:01 25 4
gpt4 key购买 nike

(我发现了一个与此类似的问题,但它已有 2 年历史了。)

我正在使用 Visual C++ 2008 开发 Windows 窗体应用程序,它使用 libCurl 的 FTP 功能。虽然我已经将 lib 和 include 目录添加到包含和库搜索路径,将 libcurl_imp.lib 添加到附加依赖项并将 CURL_STATICLIB 添加到预处理器定义,但我在构建它时遇到了 14 个链接器错误。我检查了 cURL FAQ 并用谷歌搜索了一些错误,但我还没有找到解决方案。链接器错误如下:

1>-------.obj : error LNK2031: unable to generate p/invoke for "extern "C" void __clrcall curl_easy_cleanup(void *)" (?curl_easy_cleanup@@$$J0YMXPAX@Z); calling convention missing in metadata
1>-------.obj : error LNK2031: unable to generate p/invoke for "extern "C" enum CURLcode __clrcall curl_easy_perform(void *)" (?curl_easy_perform@@$$J0YM?AW4CURLcode@@PAX@Z); calling convention missing in metadata
1>-------.obj : error LNK2031: unable to generate p/invoke for "extern "C" enum CURLcode __clrcall curl_easy_setopt(void *,enum CURLoption,...)" (?curl_easy_setopt@@$$J0YM?AW4CURLcode@@PAXW4CURLoption@@ZZ); calling convention missing in metadata
1>-------.obj : error LNK2031: unable to generate p/invoke for "extern "C" void * __clrcall curl_easy_init(void)" (?curl_easy_init@@$$J0YMPAXXZ); calling convention missing in metadata
1>-------.obj : error LNK2028: unresolved token (0A00000E) "extern "C" void __clrcall curl_easy_cleanup(void *)" (?curl_easy_cleanup@@$$J0YMXPAX@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
1>-------.obj : error LNK2028: unresolved token (0A00000F) "extern "C" enum CURLcode __clrcall curl_easy_perform(void *)" (?curl_easy_perform@@$$J0YM?AW4CURLcode@@PAX@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
1>-------.obj : error LNK2020: unresolved token (0A000010) "extern "C" enum CURLcode __clrcall curl_easy_setopt(void *,enum CURLoption,...)" (?curl_easy_setopt@@$$J0YM?AW4CURLcode@@PAXW4CURLoption@@ZZ)
1>-------.obj : error LNK2020: unresolved token (0A000011) "extern "C" enum CURLcode __clrcall curl_easy_setopt(void *,enum CURLoption,...)" (?curl_easy_setopt@@$$J0YM?AW4CURLcode@@PAXW4CURLoption@@ZZ)
1>-------.obj : error LNK2028: unresolved token (0A000012) "extern "C" void * __clrcall curl_easy_init(void)" (?curl_easy_init@@$$J0YMPAXXZ) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
1>-------.obj : error LNK2019: unresolved external symbol "extern "C" void __clrcall curl_easy_cleanup(void *)" (?curl_easy_cleanup@@$$J0YMXPAX@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
1>-------.obj : error LNK2019: unresolved external symbol "extern "C" enum CURLcode __clrcall curl_easy_perform(void *)" (?curl_easy_perform@@$$J0YM?AW4CURLcode@@PAX@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
1>-------.obj : error LNK2001: unresolved external symbol "extern "C" enum CURLcode __clrcall curl_easy_setopt(void *,enum CURLoption,...)" (?curl_easy_setopt@@$$J0YM?AW4CURLcode@@PAXW4CURLoption@@ZZ)
1>-------.obj : error LNK2019: unresolved external symbol "extern "C" void * __clrcall curl_easy_init(void)" (?curl_easy_init@@$$J0YMPAXXZ) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)

(我删掉了项目名称。)

这是什么原因造成的,我该如何预防?谢谢:)


更新

我已经切换到 Code::Blocks,现在它是一个本地 Win32 GUI 应用程序。我没有得到所有这些链接器错误,但我确实得到了一些东西:

ld.exe cannot find -lcurl.lib

我没有将 include 和 lib 目录添加到搜索目录,而是将它们放在我的项目目录中。我对这个错误感到困惑,因为 lib 的名称是 libcurl.lib,而不是 curl.lib。对发生的事情有什么想法吗?

编辑:抱歉所有的编辑,我只是​​想提一下我将 libcurl.lib 添加到链接库。


更新

现在我已经将 -lcurl 添加到其他链接选项框中,错误已更改为

ld.exe cannot find -lcurl

没有 .lib 部分。

最佳答案

确保库位于编译器的库搜索路径中,并且库是针对与可执行文件相同的架构编译的(32 位与 64 位,单线程与多线程)。

关于c++ - ld.exe 找不到 -lcurl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4926384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com