以前老版本为了兼容xp系统,还需要提前编译openssl,libssh之类的,现在新项目只需要面向win7,win10,和win11的用户,windows新系统都自带winssl,所以直接编译就行了。
一、编译
咱们编译64位的版本
1、下载libcurl,https://curl.haxx.se/download.html
2.运行buildconf.bat(我这边没啥效果)
3.打开vs2022命令提示符

4.进入winbuild目录,命令行
cd D:\Projects\VC\源码\curl\curl-7.88.1\winbuild

6.输入编译命令
#debug
nmake /f Makefile.vc mode=dll VC=17 MACHINE=x64 ENABLE_UNICODE=yes DEBUG=yes
#release
nmake /f Makefile.vc mode=dll VC=17 MACHINE=x64 ENABLE_UNICODE=yes DEBUG=no RTLIBCFG=static
如果想使用静态编译,将“mode=dll”改为“mode=static”,则不用带上curl.dll。
RTLIBCFG=static是把VC运行库打包进去,否则在其他电脑运行会报错缺少vcruntime140.dll
如果使用其他版本Visual Studio,“VC=”后面的数字应该改为该Visual Studio版本。
如果使用x86,将“MACHINE=x64”改为“MACHINE=x86”。 如果需要debug版,将“DEBUG=no”改为“DEBUG=yes”。ENABLE_UNICODE是使用unicode版本.
7.生成效果(在builds目录)


二、加入项目工程
【dll模式】
1、直接把libcurl.lib文件复制到项目目录,代码直接#pragma comment,libcurl.dll文件放入exe同目录就行。


2、代码生成,使用MT

【static模式】
(1)加入预处理宏
如果之前编译使用的是static静态库版本,那么项目中就需要将 CURL_STATICLIB 添加至工程;

(2)配置 include 和 lib 路径,将以下 lib 添加至工程:
libcurl_a.lib
Ws2_32.lib
Wldap32.lib
winmm.lib
Crypt32.lib
Normaliz.lib

(3)static模式使用MD

网友评论