前面
\quad 上次偷了个懒,在这篇文章里有记录过我当时使用的Visual Studio自带的包管理工具,很简单的就在项目里面加入了curl。简单快捷,但是有个问题,就是这样的话,程序体积有些大,速度也有些慢,不太好。
开始
我现在想把它弄成动态链接库,这样程序启动的时候会更快。所以,我就重新编译和导入到vs2019里面。
下载
https://curl.haxx.se/download.html这是官网。
首先去官网下载。不过有时候会打不开,不知道这个网站有啥问题,一般把多刷新几次就好,我个人觉得还是官方的东西靠谱,还可以根据自己的需要,选择想要的那个版本,不过一般都是直接最新版吧。哈哈哈。
解压
常规操作,解压到自己想要的一个文件夹里面去。推荐使用7z等软件,
解压完之后是这样的:
里面的每个文件夹有什么东西啊,大概是干啥的,可以进去看一看,瞄一瞄。不过一开始也不会很清楚的,瞄一下,大概有个印象即可。
编译-打开
接下来是最麻烦的地方了,我找的很多博客又是开控制台,又是命令行之类的各种操作,真的是麻烦,最后找到了一个简单的博客,操作方法及其简单。
就是这个链接。
具体操作方法就是直接使用Visual Studio打开
按照这个文件目录,打开里面的curl-all.sln文件即可。至于你是选择VC15还是里面的14 13 啥的,看你的Visual Studio版本了。vs2015的打开VC14,17的打开VC15,等等,具体参考的是里面的平台工具集,二者要对应即可。就是这个:(这个界面,点击 项目 属性即可弹出。我是vs里面的这些常用的按钮啥的,要记得在哪里,因为老是会需要用到。)
这个地方你可能会遇到两个问题,一是说打开的项目找不到啥啥文件的,我也遇到过这个问题,建议直接重新下载,别下那个-master版本的。这个版本的有这个问题,具体为啥还不清楚。二是你有可能会遇到平台工具集的问题,觉得想给自己电脑加几个除了当前vs版本的工具集,其实很简单,去微软官网下载一下你想添加的工具集版本对应的vs版本的installer,然后点击安装,这时只安装工具集那部分的的东西即可,这部分东西占用空间不大。弄完之后,再次打开你的vs就可以看到新安装的工具集了。 这个我在上次学习libcurl这篇文章里面的第4点也有提到。看第4点
编译-正式编译了
简单到爆炸的操作。
在上面选择你需要的版本,是dll 还是lib,是debug还是release等等。
关于lib和dll的区别与联系
debug和release就不说了。
然后点击本地Windows调试器就好了。结束了,如上图所示。就ok了。没有那些命令行啥的。有时候我觉得竟然Visual Studio已经如此强大了。
使用
很讨厌那些只介绍到,编译的博客,都不告诉大家怎么使用。虽然有些人是懂的,但是像我这样的就不懂。哈哈哈哈。
1
编译完了,之后,我们可以看到文件夹里面的一些子文件夹里面的内容发生了更改。请看,原来是没有bulid这个文件夹的。我觉得可能还有其他的更改,有兴趣的可以去找找。
正式使用dll
关于使用dll是另外一个大的课题。分为两种方法。具体的区别于联系这篇文章有介绍。
第一种方法是静态调用方式,我们这里介绍的。
第二种方法是动态调用方式,我以前的这篇文章有介绍。
我查到的很多的博客,也是常用的,就是静态调用方式。
这种方式的时候,我么需要做以下几件事:
1.在项目文件夹里面,创建文件夹include和lib.
2.进入目录D:\curl\curl-7.70.0\curl-7.70.0\build\Win32\VC14\DLL Release(具体看你自己的目录啦!)将libcurl.dll和libcurl.lib分别拷贝到项目文件夹的include和lib目录下。
3.项目——属性—— C/C++——预处理器——预处理器定义 添加 CURL_STATICLIB,关于这一项,我测试了不加也行,就是运行的时候,占用的内存大一些。因此是非必须的
4.项目——属性—— C/C++—— 常规—— 附加包含目录 添加include.(记得改完之后点击应用),不然没有生效,这几步都是,一定要记住!不然不生效的,就没用!
5.项目——属性—— 连接器—— 常规—— 附加库目录 添加lib.
6.将D:\curl\curl-7.70.0\curl-7.70.0\include下的curl目录拷贝到项目文件夹的include目录下。
(1 2 4 5 6 这几个操作往往是必须的,也是常规使用一个DLL必须要进行的操作。)
7.最后一步,先生成项目,这时在项目文件夹里面hi出现debug文件夹,然后把前面的那个libcurl.dll放到里面,至此就可以使用了!
8.最后的最后,当然使用的时候需要添加头文件和lib等等东西,至于这些东西具体是哪几个头文件,哪几个lib等等,对于通用的DLL添加方法不是很清楚,但是对于curl就是下面这几个。我的意思是说,对于这里使用cur;就是加入这几个东西就可以了,但是对于更加通用的方法暂时还不清楚。比如下一次有遇到了使用DLL又需要添加什么之类的。
#include <curl/curl.h>
#pragma comment(lib, "libcurl.lib")
#pragma comment(lib, "wldap32.lib")
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "winmm.lib")
如果还有问题,欢迎咨询,qq 1557414994.
参考博客:
https://blog.csdn.net/taoerit/article/details/40411191?locationNum=11&fps=1