天天看點

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