Каковы ошибки C2471, C1083, связанные с проектом VC2008, и как их исправить - PullRequest
2 голосов
/ 18 ноября 2010

У меня был очень сложный проект VC2008. Чтобы понять его внутреннюю работу, я попытался упростить его, и теперь я получаю 289 ошибок следующего типа для большинства файлов:

Ошибка 5, ошибка C2471: невозможно обновить базу данных программы 'c: \ users \ ryan \ Documents \ visual studio 2008 \ projects \ vc \ myinfo \ cli \ debug \ vc90.pdb' c: \ users \ ryan \ Documents \ visual studio 2008 \ projects \ vc \ myinfo \ cli \ mediainfo \ file__analyze_buffer_minimizesize.cpp 1 CLI

Ошибка 6: фатальная ошибка C1083: Не удается открыть файл базы данных программы: 'c: \ users \ ryan \ Documents \ visual studio 2008 \ projects \ vc \ myinfo \ cli \ debug \ vc90.pdb': такого файла или каталога нет : \ users \ ryan \ Documents \ visual studio 2008 \ projects \ vc \ myinfo \ cli \ mediainfo \ file__analyze_buffer_minimizesize.cpp 1 CLI

Моя система: win7 / VS2008

Ответы [ 6 ]

7 голосов
/ 01 марта 2013

Решение 1 : найдите файл * .vcxproj в своем решении, откройте в текстовом редакторе и найдите «DebugInformationFormat» и установите для него «OldStyle». Перезагрузите ваш проект и постройте. Если в вашем решении несколько проектов, это изменение необходимо для всех файлов * .vcxproj.

OldStyle

Решение 2 : В Visual Studio в каждом проекте решения щелкните правой кнопкой мыши и откройте Свойства. Разверните «Свойства конфигурации»> «C / C ++»> «Общие». Измените «Формат отладочной информации» на «C7-совместимый (/ Z7)». Затем создайте свое решение.

Это сработало для меня. (YMMV = Ваш пробег может отличаться:)

3 голосов
/ 18 ноября 2010

Я видел такое же поведение при преобразовании решения VS2003.Net для запуска в более поздних IDE.Я предполагаю, что ваше решение содержит несколько проектов, которые указывают на один и тот же промежуточный каталог.В VS2005 и более поздних версиях проекты, которые не зависят друг от друга, могут быть построены параллельно, поэтому, если используется один и тот же рабочий каталог, вы можете получить конфликты файлов, подобные этой.

Проверьте это следующим образом.В обозревателе решений щелкните правой кнопкой мыши один из неудачных проектов и выберите «Свойства».В разделе «Свойства конфигурации» -> «Общие» убедитесь, что у каждого проекта есть свой «промежуточный каталог».Попробуйте снова собрать, используя «Rebuild Solution», чтобы очистить все.

1 голос
/ 27 января 2012

Я сам сталкивался с ошибками такого же типа без конца разочарования.

Я наконец исправил это, применив исправление Microsoft, найденное в этой статье базы знаний: http://archive.msdn.microsoft.com/KB946040

1 голос
/ 18 ноября 2010

В большинстве случаев, когда я получаю «C2471: не могу обновить базу данных программы», это происходит потому, что файл PDB по какой-то причине заблокирован.Обычно в моем случае это происходит из-за того, что у меня программа запускается в каком-то другом окне, которое загружает файл PDB в память.

Когда это не причина, я обнаруживаю, что перестройка - все магически исправляетпроблема.

0 голосов
/ 28 ноября 2015

Вы можете удалить файл * .obj и перестроить решение снова. Эта проблема может решить. Ниже ссылка может быть полезна для вас https://social.msdn.microsoft.com/Forums/vstudio/en-US/0ceac3c6-62f6-4fdf-82e1-d41e1b4fcd20/vs2008-c2471-cannot-update-program-database?forum=vclanguage

0 голосов
/ 23 октября 2015

Это сработало для меня.

Убить mspdbsrv.exe и перезагрузить Visual C ++

* MSDN 1008 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...