本人环境为 VS stidio 2022, Win 10,Qt Creator 11.0.1,Qt 6.6.0,curl源码版本为 8.3.0
不同版本目录脉络可能不同,文中提供路径可能找不到指定文件,请善用Windows文件夹提供的搜索!
这方面的攻略大多比较过时且为MinGW版,大量文章均为复制粘贴,故写一篇更具时效性,更详细的攻略给后来者😀
文末有懒人通道,不一定兼容!
一、编译curllib
- 前往官网download页面下载curl 源码 : https://curl.se/download.html
- 解压至任意位置,打开
curl-8.3.0\winbuild
,其内应有文件Makefile.vc
。【若搜不到此文件请确认下载为Win源码,或新版本已不再支持VC动态编译】 - 找到VS IDE安装目录下
vcvars64.bat
,本人路径为VS install dir\IDE\VC\Auxiliary\Build\vcvars64.bat
- cmd 内运行
vcvars64.bat
后,此cmd窗口暂时拥有 MAKE 所需的路径变量 - cd 至解压的
curl-8.3.0\winbuild\
目录下 - 输入
nmake /f Makefile.vc mod=dll
- 若无问题在
curl-8.3.0\builds
目录下可找到名如libcurl-vc-x64-release-dll-ipv6-sspi-schannel
的文件夹,即为编译出的 curllib
二、Qt链接curllib 【末端懒人通道】
- Qt Creator 打开欲加入 curllib 的项目,右键项目-> Add library [添加库]
- 选择External library
- library file选中编译好的libcurl.lib,include file 会自动填充
- 一路next至finish
可能的报错
一、找不到libcurl.dll文件 or 找不到XX文件
在 \编译出的libcurl文件夹内\bin\
下找到 libcurl.dll
复制到与上边引用的 libcurl.lib
一个目录下,我是 \编译出的libcurl文件夹内\lib\
二、LNK1104: 无法打开文件“libcurld.lib”
一般出现于你使用非Relese版本编译情况下,上边编译出的 libcurl
库是用于 Relese
版本的,想要debug版本的请修改一下编译 libcurl
库使用的命令,或是简单的把.pro文件内的调用代码由
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/libcurl-vc-x64/lib/ -llibcurld
改为
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/libcurl-vc-x64/lib/ -llibcurl
懒人通道:
下载解压后丢入你的项目根目录,在.pro文件内加入以下代码
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/libcurl-vc-x64/lib/ -llibcurl
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/libcurl-vc-x64/lib/ -llibcurl
else:unix: LIBS += -L$$PWD/libcurl-vc-x64/lib/ -llibcurl
INCLUDEPATH += $$PWD/libcurl-vc-x64/include
DEPENDPATH += $$PWD/libcurl-vc-x64/include