Почему я получаю ошибку C1033: не могу открыть базу данных программы в VS 2010

После долгого перерыва в C ++ я пытаюсь скомпилировать очень простой проект C ++ в VS2010. Я создал консольный проект Win32 C ++, я выбрал «Нет предварительно скомпилированных заголовков и никаких других библиотек MS». Я добавил следующий файл main.cpp:

#include <iostream>
#include <string>

using namespace std;

class A
{
public:
string name;
};

int main(int argc, char** argv)
{
return 0;
}

Когда я компилирую, я получаю печально известную ошибку:

1>------ Build started: Project: TestGetline, Configuration: Debug Win32 ------
1>  main.cpp
1>main.cpp : fatal error C1033: cannot open program database ''
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Вот несколько фактов:

  • Я использую 64-битную Windows 7 в качестве виртуальной машины с Desktop Parallels: версия 6.1.7601 с пакетом обновления 1 (SP1), сборка 7601. Виртуальная машина имеет проверенный общий профиль, что означает, что папки «Документы», «Загрузки» и т. Д. Являются общими для OSX. & Windows 7.

  • Версия VS 2010: Microsoft Visual Studio 2010, Версия 10.0.40219.1 SP1Rel, Microsoft .NET Framework Версия 4.0.30319 SP1Rel

  • Ссылка, которую я использую для запуска VS 2010, имеет флажок Запускать эту программу в режиме совместимости для Windows XP (Service Pack 3). Запустить эту программу от имени администратора не проверено.

  • Я попробовал несколько вещей, предложенных в других постах, и ни одна из них не сработала. Например, я пытался убить mspdbsrv.exe (VS 2010 был закрыт), вручную удалить каталоги отладки, а затем перекомпилировать проект. Я попытался изменить формат информации отладки на C7-совместимый, но затем я получил другую ошибку (main.cpp: фатальная ошибка C1074: «IDB» — недопустимое расширение для файла PDB :). Я пытался запустить VS 2010 с правами администратора, но ошибка такая же упрямая, как клоп. И да, при попытке всего этого был запущен антивирус.

Есть другие идеи? Нельзя не задаться вопросом, есть ли вообще кто-нибудь, занимающийся разработкой C ++ в VS 2010. Обновление до VS 2012 или 2013 не вариант на данный момент.

Спасибо

Просто обновление, вот результат выполнения задачи сборки из файла журнала компиляции:

 1>Target "ClCompile" in file "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets" from project "C:\projects\cpp\TestGetLine\TestGetline\TestGetline.vcxproj" (target "_ClCompile" depends on it):
Using "Delete" task from assembly "Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "Delete"Done executing task "Delete".
Task "CL" skipped, due to false condition; ('%(ClCompile.PrecompiledHeader)' == 'Create' and '%(ClCompile.ExcludedFromBuild)'!='true') was evaluated as ('' == 'Create' and ''!='true').
Using "CL" task from assembly "Microsoft.Build.CppTasks.Win32, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "CL"Forcing recompile of all source files due to missing PDB "Debug\vc100.pdb".
Environment Variables passed to tool:
VS_UNICODE_OUTPUT=1328
c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /Zi /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt main.cpp
Tracking command:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\Tracker.exe /d C:\Windows\Microsoft.NET\Framework\v4.0.30319\FileTracker.dll /i C:\projects\cpp\TestGetLine\TestGetline\Debug /r C:\PROJECTS\CPP\TESTGETLINE\TESTGETLINE\MAIN.CPP /b MSBuildConsole_CancelEvent7f4b09d9e64d472facf5c417755b2cdd  /c "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe"  /c /Zi /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt main.cpp
main.cpp
1>main.cpp : fatal error C1033: cannot open program database ''
The command exited with code 2.
Done executing task "CL" -- FAILED.
1>Done building target "ClCompile" in project "TestGetline.vcxproj" -- FAILED.
1>Done Building Project "C:\projects\cpp\TestGetLine\TestGetline\TestGetline.vcxproj" (build target(s)) -- FAILED.

5

Решение

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

9

Другие решения

Я получаю эту ошибку все время, когда я запускаю проект в папке Dropbox. Кажется, что Dropbox создает резервную копию файла .pdb в то время, когда я пытаюсь создать.

Обычно это работает после одной или двух попыток.

6

Я снял флажок «Запустить эту программу в режиме совместимости для Windows XP (Service Pack 3)», и теперь он работает. Первоначально я играл с другими вариантами, но не с этим!

3

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

[Править] Космос был красной селедкой. Получается, что проблема случайная. Кажется, что при сборке многих файлов VS2010 не освобождает файл vc100.pdb быстро. Мы поместили 1 секунду ожидания между последовательными компиляциями, и это помогло большинству людей. Некоторым пришлось увеличить время ожидания до 3 секунд. Похоже, MS исправила эту проблему в VS2012, поэтому, если у вас есть возможность обновить, это, вероятно, лучше.

2

Я решил это, переместив папку проекта в другую папку. Тогда компилятор не жаловался на это.

0

Я столкнулся с той же проблемой, но в Visual Studio 2005. Отмена сборки до ее завершения привела к повреждению файла, удалению файла .idb, а затем к повторной сборке исправила проблему.

0

У меня тоже была эта проплема

filename.cpp: фатальная ошибка C1051: файл базы данных программы, ‘e: \ a \ b \ c \ d \ filename.pdb

Я решил эту проблему, удалив filename.pdb файл и все работает.

После удаления будет автоматически генерировать * .pdb файл путем создания, а также вызвать этот файл

0
По вопросам рекламы [email protected]