gpt4 book ai didi

c++ - 链接器错误(VS 2005 与 VS 2012)

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:30:02 24 4
gpt4 key购买 nike

我正在尝试使用 VS 2012 编译和链接 DDK 7 header 和库来构建 libxml2 库。使用 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 上看到了用于源文件的完全相同的一组 header 。

为什么 VS 2012 中的符号生成不同?如何在不针对默认 header 和库进行编译和链接的情况下解决问题?

谢谢。

最佳答案

不要使用 DDK 来构建用户模式组件。 DDK 代表Driver Development Kit。将它用于用户模式是未定义的行为。请改用 SDK

关于c++ - 链接器错误(VS 2005 与 VS 2012),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13485326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com