Ошибки компилятора VC2008 при открытии файлов sbr (C2418 C1903 C2471) - PullRequest
14 голосов
/ 06 мая 2009

РЕДАКТИРОВАТЬ: см. Мой ответ ниже для исправления.

ОРИГИНАЛЬНЫЙ ВОПРОС:

При подготовке к нашему приключенческому программированию я должен настроить управление исходным кодом и исправить файлы проекта, чтобы команда могла их использовать. (над проектом ранее работал только один человек, который воспользовался ярлыками при настройке проекта и т. д.)

Я исправляю эти файлы SLN и Proj. При попытке сделать сборку на внешнем USB-накопителе (я не пробовал его на основном жестком диске) я получаю странные ошибки (их много для разных файлов):

фатальная ошибка C1083: не удается открыть сгенерированный компилятором файл: '. \ Debug \ .sbr': разрешение отказано

Эти файлы упоминаются в файле vcproj с относительными путями в двойных кавычках:

RelativePath = ".. \ .. \ Source \ .cpp"

Я получаю ту же ошибку в файле sln в IDE или при вызове msbuild с файлом sln.

Файлы являются своего рода «общими» для нескольких файлов sln (проектов).

Человек, который изначально создавал файлы SLN, не известен как мастер настройки MSDev или работы команд.

Это проблема способа ссылки на исходные файлы? Любые предложения о том, как это исправить?

Этот URL не содержит полезной информации:

Неустранимая ошибка C1083 в MSDN

Примечание. В файле proj были / есть жестко закодированные пути, но я не вижу их для этих файлов. Они были в основном для включенных и свободных папок. Я думаю, что я удалил их всех.

Я также получаю эти ошибки:

.. \ .. \ Source \ .cpp: ошибка C2471: невозможно обновить базу данных программы '\ debug \ vc90.pdb'

.. \ .. \ Source \ .cpp (336): смертельно ошибка C1903: невозможно восстановить предыдущая ошибка (и); остановка сборник

.. \ .. \ Source \ .cpp (336): ошибка C2418: невозможно удалить файл браузера: . \ Debug \ .sbr

Ответы [ 6 ]

24 голосов
/ 25 июля 2009

Заголовок: Вы можете получить сообщение об ошибке «PRJ0008» или «C2471», или «C1083», или «D8022», или «LNK1103», или подобное сообщение об ошибке при попытке создать решение в Visual C ++ * 1003. *

Симптомы:

  • D8022: невозможно открыть 'RSP00000215921192.rsp'
  • PRJ0008: не удалось удалить файл 'vc90.idb'.
  • C1083: Невозможно открыть файл базы данных программы 'vc90.pdb'
  • C2471: Невозможно обновить базу данных программы 'vc90.pdb'
  • LNK1103: отладочная информация повреждена.

Причина:

Эта проблема возникает, когда выполняются все следующие условия:

  1. У вас есть решение с несколькими проектами.
  2. Два или более проектов не зависят друг от друга.
  3. У вас включены параллельные сборки. (Инструменты -> Параметры: «Проекты и решения», «Построить и выполнить»: для «максимального числа параллельных сборок проектов» установлено значение больше 1)
  4. Вы строите систему с несколькими процессорами (ядрами).
  5. Два или более независимых проекта настроены на использование одного и того же промежуточного и / или выходного каталога.
  6. Конкретное состояние гонки в mspdbsrv.exe остается неисправленным.

Разрешение:

Для решения проблемы выполните одно или несколько из следующих действий:

  • Переконфигурируйте независимые проекты, чтобы указать промежуточный и выходной каталог, который отличается друг от друга, например, Выходной каталог = "$ (SolutionDir) $ (ProjectName) \ $ (ConfigurationName)", промежуточный каталог = "$ (OutDir)".
  • Настройте зависимости проекта вашего проекта (Project -> Project Dependencies ...), чтобы каждый из них зависел от другого.
  • Отключить параллельные сборки.
  • Добавьте параметр загрузки "/ onecpu" в файл boot.ini.
  • Измените настройки BIOS, чтобы включить / использовать только один процессор.
  • Отправьте сообщение о проблеме в службу технической поддержки Microsoft и продолжайте выводить из них дерьмо, пока они не исправят mspdbsrv.

Статус:

Проблема заключается в сочетании как ошибки конфигурации проекта пользователя, так и состояния гонки в служебной программе Microsoft «mspdbsrv.exe», которая неправильно обрабатывает более одного потока, вызывающего его одновременно для одного и того же файла, что приводит к РУЧКА файла остается открытой.

Кроме того, сама Visual Studio и / или ее система сборки (VCBUILD и / или MSBUILD) (или все три!) Должны быть достаточно умными, чтобы обнаруживать и предупреждать пользователя о таких ошибках пользователя, чтобы можно было предпринять корректирующие действия.

Эта проблема существует уже ОЧЕНЬ долго.

Относится к:

  • Microsoft Visual C ++ 2005
  • Microsoft Visual C ++ 2008
  • Другие

С уважением представлено:

"Рыба" (Дэвид Б. Форель)
fish@infidels.org

p.s:

Не за что. :)

4 голосов
/ 06 мая 2009

Хммм.

Может быть:

http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/0ceac3c6-62f6-4fdf-82e1-d41e1b4fcd20/

есть исправление от MS

http://code.msdn.microsoft.com/KB946040

http://support.microsoft.com/kb/946040

Это может быть моей проблемой. Я думаю, что это может быть только на одной машине у меня.

EDIT:

Я скачал и запустил установщик исправлений. Кажется, это исправили.

1 голос
/ 15 февраля 2011

В моем случае все проблемы возникли из-за моего пакета вирусов (Trend Micro). Я добавил свои папки Dev в Ignore / White lists, чтобы решить проблему

1 голос
/ 06 октября 2009

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

0 голосов
/ 06 мая 2009

Иногда моя Visual Studio вдруг решает что-то вроде этого. Я обнаружил, что это может помочь переключиться на выпуск, выполнить полное перестроение, а затем вернуться к отладке.

0 голосов
/ 06 мая 2009

удалите папку отладки и создайте свой проект agian.

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