Ошибка компоновщика (VS 2005 против VS 2012)

Я пытаюсь построить 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 отличается? Как решить проблему без компиляции и связывания с заголовками и библиотеками по умолчанию?

Благодарю.

2

Решение

Не использовать DDK для создания компонентов пользовательского режима. DDK обозначает Driver Development Kit, Использование его в пользовательском режиме — неопределенное поведение. использование SDK вместо.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]