visual studio 2017 libcurl ssl perl

visual studio 2017 libcurl ssh perl

https://www.cnblogs.com/zzugyl/p/5037152.html

http://www.activestate.com/activeperl/downloads

ActivePerl

-perlpath - Specify the custom perl root path if perl is not located at
“C:\Perl” and it is a portable copy of perl and not
installed on the win system.
For e.g. -perlpath “D:\strawberry-perl-5.24.3.1-64bit-portable”

perl

https://www.perl.org/get.html
在这里插入图片描述
ActivePerl 更新了 需要 账号,而且安装的时候,需要 powershell,就不用它了.
有点麻烦

https://strawberryperl.com/
在这里插入图片描述
strawberry-perl-5.32.1.1-64bit.msi
strawberry-perl-5.32.1.1-32bit.msi

ActiveState Perl和 Strawberry Perl最大的区别是 Strawberry Perl 里面有多包含一些 CPAN 里的模块, 所以Strawberry Perl 下载的安装文件有 80多M, 而ActiveState Perl 只有20M 左右。

重启电脑后
系统变量 Path 里面 会自动的增加如下内容:

C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin

在这里插入图片描述

参考

https://www.cnblogs.com/damizhou/p/11744096.html
https://www.cnblogs.com/damizhou/p/11744096.html

ssl

在这里插入图片描述
在这里插入图片描述

1、下载或者编译openssl

可以在
http://windows.php.net/downloads/php-sdk/deps/vc15/下载编译好的包。

测试 编译后的libcurl是否支持HTTPS协议 ?

   在第7步,编译成功以后,会生成libcurl 还有外壳程序curl .

   安装上面的配置,找到curl和libcurl

下面测试 www.baidu.com 和支持加密 https://mail.qq.com

在这里插入图片描述
经过测试访问加密HTTPS协议传输,和不用加密的HTTP都能成功。。 所以编译libcurl 就算圆满成功 大功告成!!

1

右键我的电脑 -> 属性 -> 高级系统设置 -> 高级 -> 环境变量 -> 找到“Path”编辑,在最后添加你的openssl安装路径,e.g. "…xxx;c:\openssl\bin;"然后保存,重新打开一个命令行窗口处输入openssl version -a就会有信息了

windows安装OpenSSL

说明
openssl是一个强大的安全套接字密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其他目的使用。
openssl整个软件可以分为三个主要的功能部分:密码算法库、SSL协议库以及应用程序。
安装openssl有两种方式,第一种是下载源码,自己编译;第二种是装上安装包即可运行

安装方式二

  1. 下载和安装
    下载其他人做的便捷版安装包
    http://slproweb.com/products/Win32OpenSSL.html
    一直狂点下一步就行了
  2. 配置环境变量
    配置环境变量,老生常谈,这里简单贴一下配置OPENSSL_HOME
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

1

cd /D E:\mfc_work\libcurl_work\work\openssl-1.1.1l
perl Configure VC-WIN64A
 如果想编译32位版本的
perl Configure VC-WIN32

2

E:\mfc_work\openssl_lib
C:\Program Files\NASM
cd /D E:\mfc_work\libcurl_work\work\openssl-1.1.1l
perl Configure VC-WIN32  --prefix=E:\mfc_work\openssl_lib
perl Configure VC-WIN64A  --prefix=E:\mfc_work\openssl_win64_lib
perl Configure VC-WIN32  --prefix=E:\mfc_work\openssl_win32_lib

 5)按照 INSTALL 所述,依次输入:

 nmake

 nmake test

 nmake install
 
 怎么清理一下
 

使用C++发送http请求,非libcurl莫属,加上openssl支持https,加上zlib支持gzip自动解压,完美,记录一下编译过程以及遇到的问题。

cd /D E:\mfc_work\libcurl_work\work\zlib-1.2.11

>> perl Configure VC-WIN64A --prefix=@统一文件夹\openssl_1_1_0l_vc15_x64 --with-zlib-include=@统一文件夹\zlib_zip_1_2_11_vc15_x64\include --with-zlib-lib=@统一文件夹\zlib_zip_1_2_11_vc15_x64\lib\release\zlib_zip1211.lib zlib-dynamic
# VC-WIN64A:64位版本编译 
# --prefix:编译结果安装目录
# --with-zlib-include:zlib库包含目录
# --with-zlib-lib:zlib库导入库文件
# zlib-dynamic:zlib以dll形式引入
# 此命令行运行过程中会报 @perl openssl错误图 所示错误,忽略即可
>> nmake
>> nmake test
>> nmake install
>> nmake clean

2. 编译zlib
a. 官网下载最新版本zlib源代码
http://www.zlib.net/ zlib 1.2.8
http://zlib.net/zlib-1.2.8.tar.gz
b. 使用Visual Studio 2010 直接打开 zlib-1.2.8\contrib\vstudio\vc10\zlibvc.sln 运行即可。
或者在zlib根目录下 命令行执行
nmake -f win32/Makefile.msc

3

安装 strawberry-perl-5.32.1.1-64bit.msi
默认安装
安装 nasm-2.15.02-installer-x64.exe,编译openssl用的
默认安装
然后 设置系统变量 PATH ,添加 C:\Program Files\NASM

然后 下载
openssl-1.1.1l.tar.gz
解压后 重命名为 openssl 目录
openssl 目录 和curl-7.80.0 目录在 一个目录下面,同一个层级。

然后 在 visual studio 2017的 x64 控制台命令行 ,里面
跳转到
E:\mfc_work\libcurl_work\work\curl-7.80.0\projects 目录下面
执行
执行curl/projects/build-openssl.bat的批处理脚本
Usage: build-openssl [configuration] [directory]
build-openssl vc14 x64 release …/…/openssl

build-openssl.bat xxx xxx xxx

visual studio 2017 对应的是 v14.1

最后会在
openssl\build\目录下面生成 32位和64位的对应的库

openssl\build\Win32\VC14.1
复制一份修改名字为
openssl\build\Win32\VC15
然后进入
E:\mfc_work\libcurl_work\work\curl-7.80.0\projects\Windows\VC15
用visual studio2017
打开curl-all.sln
就会编译出
curl-7.80.0\build\Win32\VC15 对应的 curl.exe和libcurl.lib

使用C++发送http请求,非libcurl莫属,加上openssl支持https,加上zlib支持gzip自动解压,完美,记录一下编译过程以及遇到的问题。

如果想 用其他版本的 比如visual studio2013 开发 libcurl。
需要用对应的版本的 visual studio 2013 重新编译一下 openssl ,
然后再用visual studio2013 编译 libcurl
下面的这个错误是因为 openssl没有重新编译,而不是因为 工程 相对路径没有设置对。
1>E:\mfc_work\libcurl_work\work\openssl\include\openssl/e_os2.h(13): fatal error C1083: 无法打开包括文件: “openssl/opensslconf.h”: No such file or directory

1

这个解决方案中包含6个工程。其中:

(1). zlibvc生成动态链接库zlibwapi.dll和对应的导入库zlibwapi.lib

(2). zlibstat生成静态链接库zlibstat.lib

(3). testzlibdll测试生成的动态链接库zlibwapi.dll

(4). testzlib测试生成的静态链接库zlibstat.lib
二、使用zlib静态库:zlibstat.lib

  1. 包含头文件

    属性–C/C+±-常规–附加包含目录(添加包含.h文件的目录)

  2. 定义宏

    属性–C/C+±-预处理器–预处理器定义:添加 ZLIB_WINAPI ASMV ASMINF

  3. 项目包含.lib文件所在的目录:

    属性–链接器–常规–附加库目录

  4. 项目包含.lib文件

    属性–链接器–输入–附加依赖项(libstat.lib)

  5. 项目代码中 #include “zlib.h”

编译生成.exe即可使用。

三、使用动态库 zlibwapi.lib

  1. 包含头文件

    属性–C/C+±-常规–附加包含目录(添加包含.h的目录)

  2. 定义宏

    属性–C/C+±-预处理器–预处理器定义:添加 ZLIB_WINAPI

  3. 项目包含.lib文件所在的目录:

    属性–链接器–常规–附加库目录

  4. 项目包含.lib文件

    属性–链接器–输入–附加依赖项(zlibwapi.lib)

  5. 项目代码中 #include “zlib.h”

编译生成.exe文件需要.dll文件支持(动态加载)

1

#include <iostream>
#include <curl/curl.h>  

int AAmain() {
	CURL *curl = nullptr;
	CURLcode res;
	curl = curl_easy_init();
	if (curl != nullptr) {
		curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com");
		/* example.com is redirected, so we tell libcurl to follow redirection */
		curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
		/* 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);
	}

	return 0;
}


int main()
{
	AAmain();
    std::cout << "Hello World!\n";
}

1

_MSC_VER 定义编译器的版本
下面是一些编译器版本的_MSC_VER值(参见扩展阅读中的参考文献2的链接)

MS VC++ 15.0 _MSC_VER = 1910 (Visual Studio 2017)

MS VC++ 14.0 _MSC_VER = 1900 (Visual Studio 2015)

MS VC++ 12.0 _MSC_VER = 1800 (VisualStudio 2013)

MS VC++ 11.0 _MSC_VER = 1700 (VisualStudio 2012)

MS VC++ 10.0 _MSC_VER = 1600(VisualStudio 2010)

MS VC++ 9.0 _MSC_VER = 1500(VisualStudio 2008)

MS VC++ 8.0 _MSC_VER = 1400(VisualStudio 2005)

MS VC++ 7.1 _MSC_VER = 1310(VisualStudio 2003)

MS VC++ 7.0 _MSC_VER = 1300(VisualStudio .NET)

MS VC++ 6.0 _MSC_VER = 1200(VisualStudio 98)

MS VC++ 5.0 _MSC_VER = 1100(VisualStudio 97)

1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值