vs2015 C++ 使用libcurl
由于项目需要接入http服务,查找了一些资料,对于windows下使用libcurl,网上好多教程或者文档,要么实在太麻烦,要么不对路子,更多的问题是没有做不同编译条件做不同的库文件选择。本人做了长时间的.net开发,对于vs提供的nuget工具十分喜欢,所以本次c++项目也看看能不能用nuget,果不其然是可以依靠nuget极大简化三方库接入工作的。
具体操作如下:
- 新建一个C++ 控制台工程后,菜单栏>>工具>>NuGet包管理器>>管理解决方案的NuGet程序包
- 在浏览标签下,搜索openssl-vc140,得到一些结果后选择openssl-vc140-static-32_64程序包,右边对项目打钩,然后点安装按钮,这个是下面要安装的curl的依赖项,尽管依赖项说明里没有说有依赖项
- 同样的方式搜索curl,选择curl-vc140-static-32_64程序包,安装到相应的项目
- 项目右键>>属性>>连接器>>输入>>附加依赖项加入crypt32.lib;ws2_32.lib;wldap32.lib;
- 好了,可以愉快的使用libcurl了,但是编译后有报警:LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library,在项目属性>>连接器>>命令行 输入:/NODEFAULTLIB:“libcmtd.lib”
- OJBK
其他说明:
- 经验证,不需要加任何预处理定义
- 程序包提供了Debug/Release,x86/x64等各种编译条件下的库文件,可以随意选择编译条件
- vs2015的版本号是vc140,vs2017的版本号是vc141,如果你是2017,你需要找相应版本的程序包
- 附本文的示例工程VS2015 NuGet 使用libcurl示例工程