首页 > 代码库 > libcurl 函数curl_easy_perform在release下崩溃的问题
libcurl 函数curl_easy_perform在release下崩溃的问题
今天遇到一个很奇怪的问题: 工程中用到了libcurl, debug可以正常运行,release每次都崩溃,断到curl_easy_perform这一行。堆栈中也得不到有用信息,于是GOOGLE一番,发现也有人遇到此问题,但没有找到有效的解决办法。简直有点懵........
另外又发现一奇怪的问题,用IDE运行release版本的程序,可以正常运行,脱离IDE双击直接运行也是崩溃,打开工程选项发现 Linker->System->Minimum Required Version 为空,果断添加5.01,重新编译,运行,问题解决了。
于是打包在测试机运行,提示缺少msvcp120d.dll msvcr120.dll mscrp120.dll 各种查找复制缺少的文件,仍然崩溃,远程调试发现 仍是函数curl_easy_perform 处崩溃。此时我发现 为什么我编译的release版依赖msvcp120d.dll呢?msvcp120d.dll明明是DEBUG版的用的么。怀疑工程中可能有错用的库,认真核对后发现sqlite 是DEBUG版的,替换之。bulid run 果然不再提示缺少msvcp120d.dll。
崩溃问题随之解决。
分析可能是libcurl引用了msvcp120.dll中的函数,而我的程序msvcp120d.dll, mscrp120.dll全部导入了,在函数定位上可能是本该在mscrp120.dll中定位的,由于msvcp120d.dll也存在,误导了函数定位,而引起的崩溃。
libcurl 函数curl_easy_perform在release下崩溃的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。