2013-08-21 84 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路径,以帮助解决该问题。感谢大家。

相关问题