2013-08-21 82 views
1

我有一個C源文件來構建32位和64位二進制文​​件,它使用Visual Studio 2005進行編譯。當我嘗試在Windows 2008 Server上使用VS2012構建相同的文件時,鏈接錯誤。 32位構建正常,但64位失敗。使用VS2012編譯器編譯時得到錯誤LNK2019

我沒有一個VS項目來構建這個源代碼,而是使用makefile來構建。

msvcrt.lib(gs_support.obj) : error LNK2019: unresolved external symbol __imp_GetTickCount64 referenced in function __security_init_cookie 

我已經搜查,發現很多次,但沒有人可以幫我給出是使用VS IDE中創建項目的解決方案/解決方法。

我已經定義-DWINVER=0x0600 -D_WIN32_WINNT=0x0600

有人可以幫助嗎?

+0

謝謝。你在尋找什麼樣的信息? – Shashi

+0

GetTickCount64()是Windows Vista及更高版本中可用的winapi函數。獲取鏈接錯誤有點難以解釋,但如果您自己製作makefiles,任何事情都是可能的。粗略的診斷是你正在鏈接一個過期版本的kernel32.lib –

+0

得到了解決。 Kernel32的錯誤版本被選爲64位版本。更新了插入C:\ Program Files(x86)\ Windows Kits \ 8.0 \ lib \ win8 \ um \ x64的LIB路徑,以幫助解決該問題。感謝大家。 – Shashi

回答

1

得到它解決。錯誤版本的Kernel32.lib被選爲64位版本。它來自舊版本的MSSDK。更新了插入C:\ Program Files(x86)\ Windows Kits \ 8.0 \ lib \ win8 \ um \ x64的LIB路徑,以幫助解決該問題。感謝大家。

相關問題