我正在尝试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 上分别用于相同的功能(注意VS 2005_
之前的额外标记vsnprintf
)。我在构建日志中查看了 VS 2005 和 VS 2012 的编译器和链接器选项。两者都是一样的。将showIncludes
选项传递给编译器后,我看到 VS 2005 和 VS 2012 上的源文件使用的头文件集完全相同。
为什么 VS 2012 中的符号生成仍然不同?如何在不编译和链接默认头文件和库的情况下解决问题?
谢谢。