如何在代码块(Windows)中的C项目中包含curl库?

时间:2012-01-22 16:30:55

标签: c++ c windows compiler-construction

问题似乎很简单。我尝试了很多东西只是为了在我的C项目中使用代码:: blocks ide包含curl但是无济于事。

我想将cURL的库用于需要http功能的控制台应用程序项目。 如果有人成功地这样做了,那么非常感谢你的帮助。 :)

之前发生的事情:

-I将所有cURL文件复制到我的项目并链接库(带.a或.lib ext的文件)

- 然后我建立项目。很多未定义的引用出现了。

这是我正在测试的代码:

#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>

    int main()
    {
     curl_global_init( CURL_GLOBAL_ALL );
     CURL * myHandle;
     CURLcode result; 
     myHandle = curl_easy_init ( ) ;

     curl_easy_setopt(myHandle, CURLOPT_URL, "http://www.example.com");
     result = curl_easy_perform( myHandle );
     curl_easy_cleanup( myHandle ); 
     printf("LibCurl rules!\n");
     return 0;
    }

以下是错误:

||=== Fa, Release ===|
obj\Release\main.o:main.c|| undefined reference to `_imp__curl_global_init'|
obj\Release\main.o:main.c|| undefined reference to `_imp__curl_easy_init'|
obj\Release\main.o:main.c|| undefined reference to `_imp__curl_easy_setopt'|
obj\Release\main.o:main.c|| undefined reference to `_imp__curl_easy_perform'|
obj\Release\main.o:main.c|| undefined reference to `_imp__curl_easy_cleanup'|
||=== Build finished: 5 errors, 0 warnings ===|

2 个答案:

答案 0 :(得分:3)

转到您的项目“构建选项” - &gt; “链接器”选项卡,因此您有两个选择:

  1. 如果您的库(正确)安装在系统范围内,请在libs的“其他链接器选项”中写入,就像您直接使用编译器一样。 对于GCC,你要写-lcurl。您也可以将此与Wl,-rpath,/path/to/your/library -lMyLib之类的路径指令一起使用。显然这取决于编译器和系统设置。

  2. 在左侧的“链接库”中添加库。单击“添加”按钮并浏览到您的库文件。

  3. 请查看此A.3 — Using libraries with Code::Blocks以获取一些照片。 谷歌搜索会告诉你更多。

答案 1 :(得分:1)

以下步骤适用于Windows 32用户。几个小时后,以下步骤对我有用。这可能对您有用,也可能不对您有用,因为我在经过多次试验和错误后得到了它。这就是为什么我以精心设计的方式编写步骤。

第1步:启动代码块 创建一个名为proj_curl

的空项目

第2步:在此网址上打开www.paehl.com/open_source/?CURL_7.50.0

  • 在本网站下载

a)单击“不使用ssl下载

b)单击“仅下载libcurl.dll(所有版本)”

c)单击仅下载Libray(所有版本)

第3步:在此网址curl.haxx.se/download/curl-7.50.1.zip上打开   - 将自动下载zip文件。 (对不起,这个网站不允许我插入2个以上的链接,请耐心等待。)

注意:现在完全可以下载4个zip文件

  1. curl_750_0.zip(包含 curl.exe 文件)
  2. curl_DLL_ONLY.7z(包含nossl,RTMP,ssh等文件夹)。
  3. Curl_lib.7z(包含 lib 文件夹)
  4. curl-7.50.1.zip(包含 curl-7.50.1 文件夹)
  5. step4:在c盘中创建一个文件夹(c:\ libs \ curl) 将4个zip文件的所有文件夹文件解压缩到c中的curl文件夹中。 确保为每个zip文件创建每个子目录。

    第五步:(非常重要)

    在C盘的curl文件夹中, - 单击curl.exe(命令提示符只显示几毫秒。) - 转到代码块 - &gt;设置 - &gt;编译器...... - &gt;链接器设置选项卡 - &gt;添加

    &#34; C:\库\卷曲\ lib中\ nossl \ libcurl.a&#34;

    &#34; C:\库\卷曲\ lib中\ nossl \ libcurldll.a&#34;

    然后 - &gt;搜索目录标签 - &gt;编译器   enter image description here

    然后 - &gt;搜索目录标签 - &gt;链接    enter image description here

    点击确定

    步骤6: - 打开文件夹&#34; nossl&#34;它来自curl_DLL_ONLY.7z文件。

    • 将libcurl.dll文件复制到代码块项目的bin \ debug文件夹中。

    Step7:现在用c程序测试curl库的工作情况。

    注意:如果遇到错误&#34;程序无法启动,因为您的计算机缺少zlib1.dll。尝试重新安装程序以解决此问题。&#34;

    解决方案: - 复制并粘贴网址sourceforge.net/projects/mingw/files/latest/download

    • 通过标记所有库来安装mingw-get-setup.exe。(大约需要10分钟安装)

    • 安装后,打开C:\ MinGW \ bin,将zlib1.dll复制到与stepcurl.dll步骤6中相同的目录。

    多数民众赞成......