如何解决libCurl链接器错误在Borland c++(版本5.02)



我是c/c++新手....最近我试图用libCurl编译一个程序。但是它显示了这些错误:

Error:  Error: Unresolved external '_curl_easy_init' referenced from D:BC5BINHTTP-POST.OBJ
Error:  Error: Unresolved external '_curl_easy_setopt' referenced from D:BC5BINHTTP-POST.OBJ
Error:  Error: Unresolved external '_curl_easy_perform' referenced from D:BC5BINHTTP-POST.OBJ
Error:  Error: Unresolved external '_curl_easy_cleanup' referenced from D:BC5BINHTTP-POST.OBJ

我在网上搜索了这些错误,并知道这是链接器错误。我找到了很多关于这个问题的教程。但我不能理解。

请注意,我有libcurl.dll和许多头文件,我已经复制了头文件在D:BC5INCLUDE....现在我该怎么办?

您需要一个DLL的导入库。您可以使用borland提供的隐式实用程序从DLL创建一个。将生成的.lib包含到项目中,链接器错误就会消失。如果它在运行时开始抱怨,请确保DLL与可执行文件位于相同的文件夹中。

Eelke是正确的,您需要导入libcurl库来正确解决这些错误。根据您到目前为止在上面的评论,我假设您已经完成了以下工作:

    您已经在ide中设置了libcurl测试项目的基本布局。
  • 添加了必要的include和lib目录,以便在构建时可以正确地定位libcurl。你已经正确地创建了libcurl。
有两种方法可以链接所需的库:
  1. 使用工具链特定的#pragma指令。例如,在源文件的顶部添加:

     // eg. main.cpp
     #include <stdio.h>
     #include <curl/curl.h>
     #pragma comment(lib, "libcurl.lib")
     // ...
    

  2. 添加libcurl导入库到项目中。您可以右键单击项目名称->add node。在"添加到项目列表"窗口中,更改文件扩展名过滤器以查找.lib。默认情况下,它以 c++ source开头。找到libcurl。之前导入的Lib,然后单击打开。这将把导入库作为一个依赖项添加到项目中。

现在执行项目的重建(右键单击project->build node),它应该可以工作了。

最新更新