2

libxml2 라이브러리를 VS 2012 컴파일 및 연결하여 DDK 7 헤더 및 라이브러리와 연결하려고합니다. VS 2005로 그것은 괜찮지 만 VS 2012와 함께, 나는 링커 오류가 나타납니다. 생성 된 기호 정밀 조사에 - VS 2012와 각각 동일한 기능을위한 VS 2005 VS 2005링커 오류 (VS 2005 vs VS 2012)

, VS 2012 년

Found __imp___vsnprintf 
    Referenced in error.obj 
    Referenced in xmlreader.obj 
    Referenced in xmlwriter.obj 
    Referenced in xmlstring.obj 
    Loaded msvcrt.lib(msvcrt.dll) 

,

__imp__vsnprintf

error.obj  : error LNK2019: unresolved external symbol __imp__vsnprintf 
           referencedin function ___xmlRaiseError 
xmlreader.obj : error LNK2001: unresolved external symbol __imp__vsnprintf 
xmlwriter.obj : error LNK2001: unresolved external symbol __imp__vsnprintf 
xmlstring.obj : error LNK2001: unresolved external symbol __imp__vsnprintf 
, __imp___vsnprintf합니다 (공지 사항 VS 2005에서 vsnprintf 전에 여분 _ 표시). 빌드 로그에서 VS 2005 및 VS 2012에 대한 컴파일러 및 링커 옵션을 살펴 보았습니다. 둘 다 동일합니다. 컴파일러에 showIncludes 옵션이 전달되면 VS 2005와 VS 2012 모두에서 소스 파일에 사용 된 헤더 세트와 똑같은 세트가 표시됩니다.

VS 2012의 심볼 생성이 다른 이유는 무엇입니까? 컴파일과 링크시 기본 헤더와 libs를 사용하여 문제를 해결하는 방법은 무엇입니까?

감사합니다.

+0

모든 라이브러리가 동일한 RuntimeLibrary (DLL, MT/ST, Debug/Release) 매개 변수로 빌드되었는지 확인 했습니까? 또한 어떤 버전의 MSVCRT.lib와 연결하고 있습니까? –

+0

@MichaelSh'/ MD','/ D NDEBUG'를 사용하여 컴파일. 그리고'msvcrt.lib'는'DDK 7/lib/wxp'에서 사용 가능합니다. – Mahesh

+0

VS2012가 설치된 폴더에서 msvcrt.lib을 사용해보십시오 –

답변

1

사용자 모드 구성 요소를 작성하는 데DDK을 사용하지 마십시오. DDKDriver Development Kit을 나타냅니다. 사용자 모드로 사용하는 것은 정의되지 않은 동작입니다. 대신 SDK을 사용하십시오.