Получение ошибки LNK2019 при компиляции компилятором VS2012

У меня есть исходный файл C для сборки 32- и 64-битных двоичных файлов, и он отлично строится с Visual Studio 2005. Когда я пытаюсь собрать то же самое с VS2012 на Windows 2008 Server, я получаю следующую ошибку ссылки. В то время как 32-битная сборка работает нормально, 64-битная не работает.

У меня нет проекта VS для сборки этого источника, вместо этого я использую make-файл для сборки.

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

Может кто-нибудь помочь, пожалуйста?


person Shashi    schedule 21.08.2013    source источник
comment
Спасибо. Какую информацию вы ищете?   -  person Shashi    schedule 21.08.2013
comment
GetTickCount64() — это функция winapi, доступная в Windows Vista и более поздних версиях. Получение ошибки ссылки для этого немного сложно объяснить, но все возможно, если вы приготовите свои собственные make-файлы. Грубая диагностика заключается в том, что вы линкуете устаревшую версию kernel32.lib.   -  person Hans Passant    schedule 21.08.2013
comment
Решил. Для 64-битной сборки была выбрана неправильная версия Kernel32. Обновлен путь LIB для вставки C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x64, что помогло решить проблему. Спасибо всем.   -  person Shashi    schedule 22.08.2013


Ответы (1)


Решил. Для 64-битной сборки была выбрана неправильная версия Kernel32.lib. Это было из старой версии MSSDK. Обновлен путь LIB для вставки C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x64, что помогло решить проблему. Спасибо всем.

person Shashi    schedule 22.08.2013