Qt使用curl库

1.官网下载源代码:https://curl.haxx.se/download.html

2.使用mingw编译mingw版本:
进入源码目录:

curl-7.32.0\lib
mingw32-make -f Makefile.m32

将生成:
libcurl.a、libcurl.dll和libcurldll.a 三个文件。
将文件复制到个人工程的debug或release目录。

3.编译msvc版本,
打开cmd,进入VS对应的C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\
找到

vcvars32.bat  \\如果编译x86版本(需要跟你个人工程编译版本对应,否则会出现找不到符号问题error LNK 2019),则执行该文件,设置VC环境。
或
vcvars64.bat   \\如果编译x64版本,则执行该文件,设置VC环境。

进入cur/winbuild,可以参考readme文件,开始编译:(GEN_PDB=yes DEBUG=yes 用于生成PDB文件和调试信息,方便后续调试使用)

nmake /f Makefile.vc mode=dll GEN_PDB=yes DEBUG=yes

编译完成后,在

\curl-7.80.0\builds\libcurl-vc-x64-release-dll-ipv6-sspi-schannel\

复制libcurl.lib到个人工程目录。

最后配置pro文件:

msvc: {
DEFINES += CURL_STATICLIB
INCLUDEPATH += ./curl-7.80.0/include
LIBS += -L$$COM_LIB_DIR/win64 -llibcurl
} else {
INCLUDEPATH += ./curl-7.80.0/include
LIBS += "$$COM_LIB_DIR/libcurl.dll" -liconv
}

问题:
1.如果遇到LNK:2019问题。
可以使用dumpbin工具查看库文件是否有对应函数的符号:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86\dumpbin.exe" /exports *\libcurl.lib > check.txt
通过我的测试,x86的库符号如下:
     Exports
       ordinal    name
                  __curl_easy_cleanup
                  __curl_easy_duphandle
x64如下:
	Exports
       ordinal    name
                  curl_easy_cleanup
                  curl_easy_duphandle

,如果没有如下符号,则说明库文件不对,如果报的LNK 2019提示的符号是curl_easy_cleanup,说明用的应该是x64的库。这时候需要确认Qt编译的是否是x64版本了。

你可能感兴趣的:(Qt,qt,开发语言,visual,studio)