说明一下我是以64位来编译,跟32大同小异
其它参考:https://blog.csdn.net/baidu_41327283/article/details/82974539
我是用 vs2015 直接进去目录:D:\OPENGL\curl\projects\Windows\VC15\lib
发现没有libcurl.vcxproj
需要先执行:D:\OPENGL\curl\projects 几个.bat
build-wolfssl.bat
build-openssl.bat
generate.bat
checksrc.bat
有什么用我没用关心,好像是build-wolfssl.bat这个批处理生成了D:\OPENGL\curl\projects\Windows\VC15\lib\libcurl.vcxproj
使用过程中有错误,比如编译不过的都可以在这查询一下:
https://www.cnblogs.com/unicornsir/articles/12883412.html
如出现:LNK2019 无法解析的外部符号 __imp_wcscpy,该符号在函数 Curl_load_library 中被引用 QTGuitest I:\MyQTGuitest\QTGuitest\libcurld.lib(system_win32.obj) 1
还有可能有多字符集和unicode 字符集,libcurl默认是多字符集
也有可能,反正我还没有解决
https://www.cnblogs.com/132818Creator/p/14358595.html(好像我的LNK2019 报错比较像这个)
上面方法试了不行,我又试了这个 https://stackoverflow.com/questions/32418766/c-unresolved-external-symbol-sprintf-and-sscanf-in-visual-studio-2015
legacy_stdio_definitions.lib
还是不行,再试下
8 wevsty 2017-06-07 14:19:36 +08:00@llllllllllll |
还是不行
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2001 无法解析的外部符号 __imp_write QTGuitest I:\MyQTGuitest\QTGuitest\OLDNAMES.lib(write.obi) 1
错误 LNK2019 无法解析的外部符号 __imp__access,该符号在函数 curlx_win32_access 中被引用 QTGuitest I:\MyQTGuitest\QTGuitest\libcurld.lib(curl_multibyte.obj) 1
错误 LNK2019 无法解析的外部符号 __imp_write,该符号在函数 curlx_write 中被引用 QTGuitest I:\MyQTGuitest\QTGuitest\libcurld.lib(warnless.obj) 1
错误 LNK2019 无法解析的外部符号 __imp_wcscpy,该符号在函数 Curl_load_library 中被引用 QTGuitest I:\MyQTGuitest\QTGuitest\libcurld.lib(system_win32.obj) 1
错误 LNK2019 无法解析的外部符号 __imp_unlink,该符号在函数 cookie_output 中被引用 QTGuitest I:\MyQTGuitest\QTGuitest\libcurld.lib(cookie.obj) 1
错误 LNK2001 无法解析的外部符号 __imp_unlink QTGuitest I:\MyQTGuitest\QTGuitest\libcurld.lib(altsvc.obj) 1
错误 LNK2001 无法解析的外部符号 __imp_unlink QTGuitest I:\MyQTGuitest\QTGuitest\OLDNAMES.lib(unlink.obi) 1
错误 LNK2019 无法解析的外部符号 __imp_strspn,该符号在函数 hostname_check 中被引用 QTGuitest I:\MyQTGuitest\QTGuitest\libcurld.lib(urlapi.obj) 1
错误 LNK2019 无法解析的外部符号 __imp_read,该符号在函数 curlx_read 中被引用 QTGuitest I:\MyQTGuitest\QTGuitest\libcurld.lib(warnless.obj) 1
错误 LNK2001 无法解析的外部符号 __imp_read QTGuitest I:\MyQTGuitest\QTGuitest\OLDNAMES.lib(read.obi) 1
错误 LNK2019 无法解析的外部符号 __imp_close,该符号在函数 file_done 中被引用 QTGuitest I:\MyQTGuitest\QTGuitest\libcurld.lib(file.obj) 1
错误 LNK2001 无法解析的外部符号 __imp_close QTGuitest I:\MyQTGuitest\QTGuitest\OLDNAMES.lib(close.obi) 1
错误 LNK1120 7 个无法解析的外部命令 QTGuitest I:\MyQTGuitest\x64\Debug\\QTGuitest.exe 1
从https://blog.csdn.net/sinat_31066863/article/details/76038154摘抄一段
微软给程序默认使用的运行库是 (/MD) (/MDd) 都是动态的运行库。有的时候包含了一个第三方库,一链接就是一堆的报错,然后运行库改成(/MT) (/MTd) 后就能够正常链接了。但是如果一不小心再包含其他库,其他库是使用 (/MD) (/MDd) 生成的,结果就可能报出上面这种类型的错。很纳闷,这个库是应该存在的,结果他说链接不了。
写这篇文章的目的是,提醒自己微软的运行库是一个坑,不能链接的另一种可能就是你包含的库生成时使用的运行库可能不一致。
要不再看看这个:https://blog.csdn.net/yqichang/article/details/10825111
好了搞不定,跟他们一样的报错,就还解决不了,换一个LIB Debug - LIB OpenSSL选项编译试一下
项目属性-配置属性-链接器-输入-忽略特定的库:libcmtd.lib
成功了,换个思路居然比解决问题更块,主要是我的opensll64位也编译好的,直接include一下就好了,lib居然都不用设置
opensll64库编译见:https://blog.csdn.net/qq_30377315/article/details/114268991