Ошибка компоновки Vista / Win 7 SDK bufferoverflowu.lib

Я скачал Windows SDK 7.0A, чтобы изучить некоторые вещи, о которых я читал. Я скачал несколько примеров, которые работают с SDK, но когда я пытаюсь скомпилировать их, я получаю сообщение об ошибке. Я посмотрел в каталоге Lib SDK и не смог найти его. Я также сделал полный системный поиск и также не нашел его.

Я читал о том, что это специальная ссылка, добавленная при компиляции, или результат проверки версии в прагме. Я не мог найти ссылку на lib в исходном коде или во всех заголовочных файлах.

Я бегу:
Vista Ultimate
VS 2010 Beta 2
Microsoft Windows SDK для Windows 7 и.NET Framework 3.5 с пакетом обновления 1

Моя ошибка:

ошибка LNK1104: не удается открыть файл "bufferoverflowu.lib"

Я только что переустановил и все еще получаю ту же проблему.

1 ответ

Какой именно образец вы пытаетесь построить - небольшое исследование показывает, что bufferoverflowu.lib (и другие связанные bufferoverflow*.lib файлы) были в предыдущих SDK для поддержки компиляции до и после того, как Microsoft добавила возможность компилятору генерировать проверки переполнения буфера (начиная с опции /GS в VS 2003 - я думаю).

Библиотеки были в SDK, так что если пользователь создал программу Windows с компилятором, который не поддерживал проверки переполнения буфера, библиотеки SDK, которые были созданы таким образом, ссылались на код в bufferoverflow*.lib чтобы получить поддержку. Если бы пользователь собирал с более новым компилятором, все связывалось бы с библиотекой времени выполнения C, которая имела поддержку переполнения буфера.

Однако Windows SDK v7.0 поддерживает только создание приложений с VS 2005 SP1 или новее, поэтому код проверки переполнения буфера всегда поступает из среды выполнения C - bufferoverflow*.lib Файл больше не должен быть необходим.

Другие вопросы по тегам