Curl的curl_easy_perform函数在Debug正常,但在Release崩溃的解决方法
来源:互联网 发布:常用的网络协议有哪些 编辑:程序博客网 时间:2024/06/08 19:00
2014年3月7日星期五
Curl的curl_easy_perform函数在Debug正常,但在Release崩溃的解决方法
(1) 在VS2008的Release编译时,会出现很多个这样的警告:
warningLNK4099: PDB 'vc100.pdb' was not found with '../lib\libcurl.lib'
注意:在Release崩溃的时候,有可能会因为这些警告而产生,所以提高警告级别,在属性里面。这是防止Release崩溃的一个方法之一。
(我没有来得及去除这些警告)
(2) 在Release版本的预编译里,预定义为以下2个
WIN32
NDEBUG
在VS2008和VS2010属性里面设置:
加入的LIB:
libcurl.lib
Ws2_32.lib
Wldap32.lib
Advapi32.lib
libcurl_imp.lib
[libcurl_imp.lib必须在Release里面增加,否则在执行curl的时候会崩溃!在Debug可以不要]
按照以上设置,libcurl_imp.lib没有也可能导致VS2008编译不过去。
以上是VS2010和VS2008,特别说明,
以上VS2008和VS2010编译的curl连接下载文件测试成功,
特别是Release.
总结:
Release版本需要libcurl_imp.lib库
预定义的时候,只需要WIN32,NDEBUG
测试成功,如果问题还存在,请可以参考以下的
//////////////////////////////////////////////////////////////////////////////////////////////////////////
以下是VS2010的设置
C++ Command lines
/I"include"/Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D "WIN32" /D"NDEBUG" /D "_UNICODE" /D "UNICODE" /Gm- /EHsc/MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Yu"StdAfx.h"/Fp"Release\curllib_app2010.pch" /Fa"Release\"/Fo"Release\" /Fd"Release\vc100.pdb" /Gd /analyze-/errorReport:queue
Link Command lines
/OUT:"E:******\Release\curllib_app2010.exe"/INCREMENTAL:NO /NOLOGO /LIBPATH:"../lib" "libcurl.lib""Ws2_32.lib" "Wldap32.lib" "Advapi32.lib""libcurl_imp.lib" "kernel32.lib" "user32.lib""gdi32.lib" "winspool.lib" "comdlg32.lib""advapi32.lib" "shell32.lib" "ole32.lib""oleaut32.lib" "uuid.lib" "odbc32.lib""odbccp32.lib" /MANIFEST /ManifestFile:"Release\curllib_app2010.exe.intermediate.manifest"/ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'"/DEBUG /PDB:"E:*****\Release\curllib_app2010.pdb" /SUBSYSTEM:CONSOLE/OPT:REF /OPT:ICF /PGD:"E:***\Release\curllib_app2010.pgd" /LTCG/TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE
以下是VS2008的设置
C++ Command line
/Ox/Oi /I "../include" /D "WIN32" /D "NDEBUG" /D"_UNICODE" /D "UNICODE" /FD /EHsc /MD /Gy/Yu"stdafx.h" /Fp"Release\curllib_app2008.pch"/Fo"Release\\" /Fd"Release\vc90.pdb" /W3 /nologo /c /Zi /TP/errorReport:prompt
Link Command line
/OUT:"E:***\Release\curllib_app2008.exe"/INCREMENTAL:NO /NOLOGO /LIBPATH:"../lib" /MANIFEST/MANIFESTFILE:"Release\curllib_app2008.exe.intermediate.manifest"/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"*****\Release\curllib_app2008.pdb"/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /DYNAMICBASE /NXCOMPAT /MACHINE:X86/ERRORREPORT:PROMPT libcurl.lib Ws2_32.lib Wldap32.lib Advapi32.liblibcurl_imp.lib kernel32.lib user32.libgdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.liboleaut32.lib uuid.lib odbc32.lib odbccp32.lib
以上问题害的我找了整整2个小时!!!总算解决了!
完 3/7/2014 10:52:32 AM
如果是LIB库,需要做成如下,尤其去掉clr,
libcurl_imp.lib不需要,否者会出现编译警告
Yes (/NODEFAULTLIB)
/Ox /Oi /I "../include" /D "WIN32" /D "NDEBUG" /D "_UNICODE" /D "UNICODE" /FD /EHsc /MDd /Gy /Yu"stdafx.h" /Fp"Release\lib_download.pch" /Fo"Release\\" /Fd"Release\vc90.pdb" /W3 /nologo /c /Zi /TP /errorReport:prompt
- Curl的curl_easy_perform函数在Debug正常,但在Release崩溃的解决方法
- VC在debug运行正常,release崩溃的解决办法
- vc中debug版程序正常但release版崩溃的解决方法
- vc中debug版程序正常但release版崩溃的解决方法
- 解决 CListCtrl 中用GetColumn在debug下正常, Release模式程序崩溃的问题
- “Debug正常,Release崩溃”的可能原因
- vc中debug版程序正常但release版崩溃
- vc中debug版程序正常但release版崩溃
- vc中debug版程序正常但release版崩溃
- vc 中debug版程序正常 但release版崩溃
- vc中debug版程序正常但release版崩溃
- vc中debug版程序正常但release版崩溃
- vc中debug版程序正常但release版崩溃
- Debug 运行正常但 Release 失败的问题,Debug 和 Release 编译方式的本质区别
- Debug 运行正常但 Release 失败的问题,Debug 和 Release 编译方式的本质区别
- 在debug版本运行正常但在release版本下运行错误!
- QTreeView可编辑功能 在Debug状态可以运行在Release下崩溃的问题
- Debug调试运行正常,但在Release模式下退出程序时报错
- mysql数据库优化
- oracle常见的故障类型
- 使用PowerDesigner 建立企业知识库
- Verilog同步复位,异步复位
- oracle数据库和mysql数据库列类型对照 .
- Curl的curl_easy_perform函数在Debug正常,但在Release崩溃的解决方法
- 编程日记2013-11-26
- shell脚本----cp (copy)复制文件或目录
- python2.7.3 统计某个文件夹下所有文件或者某个文件的行数
- 稀疏矩阵压缩存储
- JavaScript表单验证电话号码
- 树莓派上运行C#程序
- 排名函数
- php常用的宏