2013-08-21 3 views
1

32 비트 및 64 비트 바이너리를 빌드 할 C 소스 파일이 있고 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 기능입니다. 링크 오류를 얻는 것은 설명하기가 약간 어렵지만, 자신 만의 makefile을 만들면 무엇이든 가능합니다. 대략적인 진단은 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 경로를 업데이트했습니다. 모두에게 감사드립니다.

관련 문제