想使用libcurl里面的c-ares,需要自己编译一个版本,遇到了很多错误,通过搜索文章一一解决了,这里记录一下。
0. 建议阅读winbuild文件夹里的README.md文件
1. 运行库使用/MT
nmake命令需要加RTLIBCFG=static。如果已经编译了一遍,需要先清除掉先前编译的,即`nmake /f Makefile.vc clean mode=static`,再使用新的命令编译。
2. 使用其他的三方库时注意文件放置的位置
3. 编译XP版本
其中编译cares.lib静态库,修改了源文件c-ares-1.18.1\src\tools\adig.c 中的 snprintf(new_name, sizeof(new_name), "%lu.%lu.%lu.%lu.in-addr.arpa", a4, a3, a2, a1);
4. 使用该库的工程文件添加的lib如下:(可能多余了但没有少)
crypt32.lib
lib\libcrypto.lib
lib\libssl.lib
wldap32.lib
winmm.lib
normaliz.lib
lib\libcares.lib
lib\libcurl_a.lib
iphlpapi.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
ole32.lib
oleaut32.lib
uuid.lib
ws2_32.lib
shell32.lib
advapi32.lib
comdlg32.lib