unresolved external symbol __report_rangecheckfailure 解決思路

unresolved external symbol __report_rangecheckfailure 解決思路

__report_rangecheckfailure  是用來檢查堆棧緩存溢出的,如果編譯的時候打開GS(project property--》Configuration properties--》c/c++--》Code generation--》Buffer security check)選項時(GS編譯選項解析),編譯器將爲你加入檢測函數堆棧緩存溢出錯誤額外代碼。具體實現在window下的運行時庫文件msvcrt.dll中。而這些檢查堆棧緩存溢出的代碼中在msvcrt11.dll及以後版本中都會調用到__report_rangecheckfailure 函數,所以當你用vs2010及以前版本進行開發,並使用了由vs2012及以後編譯器編譯的庫文件時,在鏈接的時候就會報這樣的錯誤。

解決辦法:

一、用當前vs重新編譯庫文件;

二、編譯庫文件的時候關閉GS選項;

三、使用vs2012及以上版本進行開發;


參考鏈接:http://www.datazx.cn/Forums/en-US/7abc7f63-c3a6-4a55-babc-6914870d4959/unresolved-external-symbol-reportrangecheckfailure?forum=vcgeneral




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章