3

我是 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.... 现在我该怎么办?

4

2 回答 2

2

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

于 2011-07-11T12:37:15.710 回答
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 导入库添加到项目中。您可以通过右键单击项目名称->添加节点来执行此操作。在“添加到项目列表”窗口中,更改文件扩展名过滤器以查找 .lib。默认情况下,它以C++ source开头。找到您之前导入的 libcurl.lib,然后单击打开。这会将导入库作为依赖项添加到项目中。

现在执行项目的重建(右键单击项目->构建节点),它应该可以工作。

于 2011-07-12T18:41:21.063 回答