Я пытаюсь построить libxml2
библиотека с компиляцией и компоновкой VS 2012 DDK 7
Заголовки и библиотеки. С VS 2005 он работает нормально, но с VS 2012 я получаю ошибку компоновщика. При внимательном рассмотрении сгенерированных символов —
На VS 2005,
Found __imp___vsnprintf
Referenced in error.obj
Referenced in xmlreader.obj
Referenced in xmlwriter.obj
Referenced in xmlstring.obj
Loaded msvcrt.lib(msvcrt.dll)
На VS 2012,
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
, __imp___vsnprintf
для VS 2012 и VS 2005 соответственно для одной и той же функции (обратите внимание на дополнительные _
отметьте раньше vsnprintf
в VS 2005). Я посмотрел параметры компилятора и компоновщика для VS 2005 и VS 2012 в журнале сборки. Оба одинаковы. С showIncludes
Опция, передаваемая компилятору, я вижу точно такой же набор заголовков, который используется для исходных файлов на VS 2005 и VS 2012.
Почему генерация символов в VS 2012 отличается? Как решить проблему без компиляции и связывания с заголовками и библиотеками по умолчанию?
Благодарю.
Не использовать DDK
для создания компонентов пользовательского режима. DDK
обозначает Driver Development Kit
, Использование его в пользовательском режиме — неопределенное поведение. использование SDK
вместо.
Других решений пока нет …