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

时间:2011-07-11 11:29:03

标签: c++ c++builder libcurl c++builder-5

我是c / c ++的新手....最近我正在尝试使用libCurl编译程序。但它向我展示了这些错误:

Error:  Error: Unresolved external '_curl_easy_init' referenced from D:\BC5\BIN\HTTP-POST.OBJ
Error:  Error: Unresolved external '_curl_easy_setopt' referenced from D:\BC5\BIN\HTTP-POST.OBJ
Error:  Error: Unresolved external '_curl_easy_perform' referenced from D:\BC5\BIN\HTTP-POST.OBJ
Error:  Error: Unresolved external '_curl_easy_cleanup' referenced from D:\BC5\BIN\HTTP-POST.OBJ

我在网上搜索了这些错误,并发现这是链接器错误。我发现了很多关于这个问题的教程。但我无法理解。

请注意,我有libcurl.dll和大量的头文件,我已经在D:\ BC5 \ INCLUDE中复制了头文件.... 现在该怎么办?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

Eelke是正确的,您需要导入libcurl库以正确解决这些错误。根据您上面的评论,我将假设您已经完成以下操作:

  • 您在ide中拥有libcurl测试项目设置的基本布局。
  • 添加了必要的include和lib目录,以便在构建时可以正确找到libcurl。
  • 您已正确创建了libcurl.lib导入文件,以便与链接器一起使用。

您可以通过两种方式链接所需的库:

  1. 使用特定于工具链的#pragma指令。例如,在源文件的一个顶部附近添加:

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

  2. 将libcurl导入库添加到项目中。您可以通过右键单击项目名称 - &gt; 添加节点来执行此操作。在“添加到项目列表”窗口中,更改文件扩展名筛选器以查找.lib。默认情况下,它以 C ++源开头。找到先前导入的libcurl.lib,然后单击“打开”。这会将导入库作为依赖项添加到项目中。

  3. 现在执行项目的重建(右键单击项目 - &gt; 构建节点),它应该可以正常工作。