我下载了 Windows SDK 7.0A 来探索我正在阅读的一些内容。我下载了一些适用于 SDK 的示例,但当我尝试编译它们时出现错误。我查看了SDK的lib目录,没有找到。我也进行了完整的系统搜索,但也没有找到。
我读到这是在编译时添加的特殊链接或编译指示中版本检查的结果。我在源代码或所有头文件中找不到对 lib 的任何引用。
我在跑:
远景终极版
VS 2010 测试版 2
适用于 Windows 7 和 .NET Framework 3.5 Service Pack 1 的 Microsoft Windows SDK
我的错误:
error LNK1104: cannot open file 'bufferoverflowu.lib'
我刚刚重新安装,但仍然遇到同样的问题。
最佳答案
您究竟要构建什么示例 - 一些研究表明 bufferoverflowu.lib
(以及其他相关的 bufferoverflow*.lib
文件)在以前的 SDK 中以支持在 Microsoft 添加编译器生成缓冲区溢出检查功能之前和之后使用编译器进行构建(我认为是从 VS 2003 中的/GS 选项开始)。
库在 SDK 中,因此如果用户使用不支持缓冲区溢出检查的编译器构建 Windows 程序,以这种方式构建的 SDK 库将链接到 bufferoverflow 中的代码*.lib
以获得支持。如果用户使用较新的编译器进行构建,则所有内容都将链接到具有缓冲区溢出支持的 C 运行时库。
但是,Windows SDK v7.0 仅支持使用 VS 2005 SP1 或更新版本构建应用程序,因此缓冲区溢出检查代码始终来自 C 运行时 - bufferoverflow*.lib
文件不应不再需要。
关于c++ - Vista/Win 7 SDK bufferoverflowu.lib 链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2242665/