• 在VC中集成cURL


    libcurl 库的代码是完全开源的,但是我们一般不会在项目中直接引入它的源代码,而是通过动态链接库隐式链接的方式引入 libcrul 库。也就是说,我们需要在自己的项目中引入 libcrul 相关的三类文件:.lib(导出函数)、.dll 和 .h。

    要得到这些文件有两种方式:
    方式一,也是推荐优先尝试的做法,到官网下载页面上根据自己的项目开发环境,下载对应的已经编译好的 libcurl 库文件;
    方式二,还是到官网下载页面上,下载整个 libcurl 库的源代码自行编译,得到需要的文件。

    官网首页:http://curl.haxx.se
    官网下载页面:http://curl.haxx.se/download.html

    下面分别描述一下两种方式的优缺点和操作步骤。

    方式一:到官网下载页面下载对应的已经编译好的 libcurl 库文件

    方式一的优点是操作简单,拿来主义,把下载好的压缩包一解压,复制粘贴就可以直接用了。缺点是官网上所提供的这种由第三方开发者编译好的库文件,估计也是热心网友或者开源项目组成员好心上传上去的,因此它们与 libcurl 库未必是同步更新的,比如 2012 年六一儿童节当天,我在官网上下载的 Win32 - MSVC 编译生成库对应的 libcurl 版本是 7.25.0,而最新的 libcurl 版本已经更新到了 7.26.0。另外还有个比较坑爹的地方是,这些由第三方开发者自行编译上传的库文件,质量参差不齐,我就试过引入某个版本的库文件之后,导致自己的程序运行时发生 Crash。

    操作步骤:

    (1) 进入官网下载页面

    (2) 在右侧选择要使用 libcurl 的开发环境

    (3) 选择适合的编译生成库

    我正在的开发的这个项目主要是使用 libcurl 来做一些腾讯微博开放平台的 API 调用(基于 HTTP),并不需要使用到 SSL 传输(比如 HTTPS和FTPS),所以我选择的是不带 SSL 支持编译的版本。

    方式二:到官网下载页面下载整个 libcurl 库的源代码自行编译,得到需要的文件

    方式二的优点是你想怎么着都行,缺点是操作比较繁琐。libcurl 是可以定制编译的,你可以根据实际需要是否支持某些特性,但这也带来了操作上的麻烦。比如说如果你开启了 OpenSSL 支持,那你就需要先自行引入 OpenSSL 这个第三方库,才能开始 libcurl 的编译,又比如你开启了 ZLib 支持,那你又必须先搞定 ZLib 这个第三方库。

    实际操作的时候,你会发现像 OpenSSL 和 ZLib 这些第三方库的编译又是一件非常繁琐的事情。所以下面我只谈 libcurl 的编译。

    你可以直接用 Visual Studio 编译 libcurl

    如果不需要zlib跟OpenSSL,下载完整的  libcurl 代码库之后,直接用 Visual Studio 打开自带的 vc6curl.dsw 打开编译就可以了。

    使用 VC6 编译的时候可能会遇到下面这个错误提示,这是因为 VC6 默认安装的 Platfomr SDK 比较老:

    fatal error C1189: #error :  MSVC 6.0 requires "February 2003 Platform SDK" a.k.a. "Windows Server 2003 PSDK"

    可以通过 ALLOW_MSVC6_WITHOUT_PSDK 这个编译宏来屏蔽强制使用 February 2003 Platform SDK 编译,步骤如下:

    • 在 VC6 的主菜单选择 Project->Settings... 调出工程设置窗口;
    • 在 Settings For 中选择 All Configurations;
    • 在 C/C++ 标签页的 Category 中选择 General,在 Preprocessor definitions 中追加 ALLOW_MSVC6_WITHOUT_PSDK。

    你还可以用命令行来编译 libcurl

    这个在“代码包根目录winbuildBUILD.WINDOWS.txt” 里面有很详细的说明。值得一提的是,BUILD.WINDOWS.txt 中对  USE_SSPI 编译选项的描述有误,多了一个 S。

    USE_SSSPI=<yes or no>        - Enable SSPI support, default to yes 

    以 VS2010 为例说明命令行编译的步骤:

    • 调出命令行窗口,Windows 开始菜单 -> 所有程序 -> Microsoft Visual Studio 2010 -> Visual Studio Tools -> Visual Studio Command Prompt (2010)
    • 进入代码包中的 winbuild 目录
    • 输入编译命令行: nmake /f Makefile.vc mode=dll VC=10 USE_SSPI=no USE_IPV6=no USE_IDN=no GEN_PDB=no DEBUG=no
    • 编译完毕之后,进入以下路径“uildslibcurl-release-dll”即可得到我们需要 .lib、.dll 和 .h 文件。
  • 相关阅读:
    查询数据库锁的SQL
    注解学习实例(模拟hibernate,table,column注解,拼装SQL)
    mongoDB学习笔记
    拼装SQL.例子
    MySQL实现类似Oracle序列的函数
    面试总结
    linux下常用命令
    PHP 中 flush() 与 ob_flush() 的区别
    PHP 使用共享内存的资料
    移动设备的web站开发和将web封转成移动端应用的一些资料
  • 原文地址:https://www.cnblogs.com/duxiuxing/p/2528858.html
Copyright © 2020-2023  润新知