使用mingw64编译支持ssl的curl

使用mingw64编译支持ssl的curl

工具下载及安装

  • msys2 下载地址-> http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe
  • mingw64 下载地址-> http://www.mingw-w64.org/doku.php/download/mingw-builds
  • openssl 下载地址-> https://www.openssl.org/source/openssl-1.1.1-pre8.tar.gz
  • libcurl 下载地址-> https://curl.haxx.se/download/curl-7.60.0.tar.gz

安装下载的mingw64和msys2,将libcurl及openssl解压到D盘根目录。

编译openssl

  • 在msys2安装目录找到mingw64.exe,双击运行!
  • 在mingw64命令行窗口将mingw64的安装目录的bin目录加入到环境变量
export PATH="your_mingw64_path/bin:$PATH"
  • 切换到openssl解压目录,输入如下命令:
./Configure --prefix=$PWD/dist no-idea no-mdc2 no-rc5 shared mingw64
  • 编译
mingw32-make depend && mingw32-make && mingw32-make install

编译完成后将会安装到你的openssl目录下的dist目录下,保存以备使用

编译libcurl

切换到你解压的libcurl所在目录,进入lib目录,打开Makefile.m32,修改SSL_PATH的值为你上一步的dist目录,可使用相对路径。
输入如下命令编译

mingw32-make -f Makefile.m32 SSL=1

等待编译完成!

使用编译的libcurl库

将你的libcurl/lib目录下的libcurl.a以及openssl/dist/lib目录下的libcrypto.a及libssl.a复制到你的lib文件夹
使用你的编辑器新建一个c文件,代码如下:

#include "your_libcurl_path\include\curl\curl.h"
// #include <curl/curl.h>
int main(int argc, char *argv[])
{
    CURL *curl = 0;
    CURLcode res;
    curl = curl_easy_init();
    if (curl != 0)
    {
        curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com");
        /* example.com is redirected, so we tell libcurl to follow redirection */
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
        /* Perform the request, res will get the return code */
        res = curl_easy_perform(curl);
        /* Check for errors */
        if (res != CURLE_OK)
        {
            fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
        }
        /* always cleanup */
        curl_easy_cleanup(curl);
    }
    // getchar();
    return 0;
}

使用如下命令编译并测试运行

gcc -I. -Iyour_libcurl_path/include -g -O2 -DCURL_STATICLIB -c $fileName && gcc  -o $fileNameWithoutExt.exe $fileNameWithoutExt.o -Lyour_lib_path -lcurl -lssl -lcrypto -lwldap32 -lws2_32 && $dir$fileNameWithoutExt
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值