使用MinGW编译libcurl静态库
libcurl
7.21以后的版本在Windows下的编译比较简单,自带了MinGW和VC环境的Makefile文件,首先去Curl官网下载源代码:
http://curl.haxx.se/download.html,
任选一个下载即可,推荐这个:
curl-7.21.2.tar.gz
下载完成后解压开,打开命令行进入curl源码目录,(在此之前请先设置好MinGW的环境变量):
cd curl-7.21.2
编译libcurl库文件:
cd lib
make -f Makefile.m32
等待编译完成即可
编译curl可执行文件:
cd ../src
make -f Makefile.m32
一会儿就编译完成了
编译完成后,我们需要复制include头文件和库文件到一个目录供程序开发用
- 新建curllib目录
- 新建curllib/include目录,将源代码include目录里的curl文件夹复制到curllib/include目录,这些是使用libcurl需要的头文件
- 新建curllib/lib目录,将源代码lib目录里编译好的库文件libcurl.a,libcurldll.a,libcurl.dll复制到curllib目录
- 将MinGW安装目录下lib文件夹里的libwldap32.a和libws2_32.a复制到curllib/lib目录
至此,curllib就是我们开发中要使用到的libcurl的全部文件,下面新建一个测试程序,假设文件名为curltest.c,代码如下:
1 | \#include \<stdio.h\> |
** 方法一、命令行编译使用licurl的程序
假设测试代码curltest.c位于e:/project
假设curllib文件夹的位置为c:/curllib
命令行运行下列命令编译这个测试程序:
1 | cd e:/project |
这时可以看到curltest.c目录下生成了一个curltest.exe文件
接着在命令行输入:
1 | curltest.exe |
如果看到命令行窗口输出一些HTML代码,就表示编译成功
** 方法二、Code::Blocks中使用libcurl静态库
- 新建工程,在工程里添加代码同上的curltest.c文件
- 将上面curllib/include目录下的curl文件夹复制到MinGW安装目录的include目录
- 工程名上右键打开Build Options选项,在Compiler
Settings选项卡下的#defines里面输入CURL_STATICLIB,(这表示使用静态库) - 在Linker Settings选项卡下面的link
libraries里添加上面curllib/lib目录里的四个文件:
1 | C:curllibliblibcurl.a |
然后回到工程页面,点击Build即可
今天为了编译和使用libcurl库折腾了一下午,记下来供需要的人参考,需要注意的是,本文中编译的是不带ssl和zlib支持的libcurl,如果需要编译支持ssl和zlib的curl,还需要先编译openssl,zlib和libssh,编译zlib比较简单,直接使用源码自带的makefile文件即可,编译openssl需要安装MSYS和Perl,还需要修改一些代码,libssh的编译依赖openssl,网上都可以找到方法,也可以看源码的README文件。
附一篇在C语言中使用libcurl库的文章供参考:
使用 cURL 和 libcurl 通过 Internet
进行对话
下面几篇是Curl的文档和教程:
Scripting HTTP Requests Using
Curl
Curl Man Page
Curl Mannul
Using The libcurl C Interface
libcurl - small example
snippets
programming with
libcurl
Comments