天天看點

VC6使用VS2005(VS2008)的lib庫檔案,去除RTC連結錯誤

2012-03-14 20:56

MSTAR模拟器:VS2005或VS2008;MTK模拟器:VC6和VS2005;展訊模拟器:VC6。

我在MSTAR模拟器(VS2005)上生成的庫,放到展訊模拟器(VC6)上,會報連結錯誤,也就是:

VC6使用VS2005(VS2008)預設編譯生成出來的lib庫檔案,會報如下的連結錯誤:

error LNK2001: unresolved external symbol __RTC_Shutdown

error LNK2001: unresolved external symbol __RTC_InitBase

error LNK2001: unresolved external symbol __RTC_CheckEsp

error LNK2001: unresolved external symbol __RTC_UninitUse

error LNK2001: unresolved external symbol @_RTC_CheckStackVars@8

error LNK2001: unresolved external symbol @__security_check_cookie@4

error LNK2001: unresolved external symbol ___security_cookie

fatal error LNK1103: debugging information corrupt; recompile module

這些RTC錯誤,是VS2005及以上版本編譯器的Runtime Check運作時檢查

在編譯lib時,如果選擇了“運作時檢查”,那麼别的應用程式在連結這個庫檔案的時候,就會報這樣的錯

為了能讓lib庫檔案在VS2005和VC6上通用,需要用以下的方法,再重編一下庫:

VS2005的工程項目,右鍵>屬性>配置屬性> C/C++ > 代碼生成 > 基本運作時檢查,将值改為“預設值”

繼續閱讀