Я пытаюсь использовать CMake в Windows 10. Я создаю проект Hello world:
CMakeLists.txt
cmake_minimum_required(VERSION 3.13)
add_executable(simple-program main.cpp)
main.cpp
#include <iostream>
int main()
{
std::cout << "Hello, World!\n";
}
Затем я открываю проект с помощью CMake gui, выбираю генератор Visual Studio 10 2010 Win64 и получаю эту ошибку при попытке сгенерировать проект:
testCCompiler.c : fatal error C1033: cannot open program database 'c:\work\prj\simple-program\build\cmakefiles\cmaketmp\cmtc_983e7.dir\debug\vc100.pdb'
Насколько я понял проблема, из-за опции Zi и отсутствия Fd, который cmake задает для демонстрационного проекта, проект пытается найти базу данных vc100.pdb, но никого нет, потому что генератор этого не сделал.
Генератор x86 пробовал. Другие версии cmake (3.6, 3.13, 3.12). И такой же результат я получаю при использовании консоли. Мой VS 2010 должен быть в порядке - он генерирует PDB, когда я создаю из него проект.
Спасибо!





Просто создайте свой сгенерированный проект в режиме отладки:
MSBuild ALL_BUILD.vcxproj /p:Configuration=Debug
Если вы хотите создать выпуск и установить его с файлами PDB, всего:
list(APPEND INSTALL_TARGETS simple-program)
list(APPEND INSTALL_TARGETS_PDB simple-program)
# Install
install(TARGETS ${INSTALL_TARGETS}
RUNTIME DESTINATION "${PROJECT_SOURCE_DIR}/bin"
LIBRARY DESTINATION "${PROJECT_SOURCE_DIR}/bin"
ARCHIVE DESTINATION "${PROJECT_SOURCE_DIR}/bin")
# Install *.pdb files
if (MSVC)
foreach(INSTALL_TARGET_PDB ${INSTALL_TARGETS_PDB})
install(FILES $<TARGET_PDB_FILE:${INSTALL_TARGET_PDB}> DESTINATION "${PROJECT_SOURCE_DIR}/bin")
endforeach()
endif ()
Наконец, запустите CMake и выполните сборку в режиме RelWithDebInfo:
cmake -G "Visual Studio 10 2010 Win64"
MSBuild ALL_BUILD.vcxproj /p:Configuration=RelWithDebInfo
MSBuild INSTALL.vcxproj /p:Configuration=RelWithDebInfo
Это создаст файлы simple-program.exe и simple-program.pdb в вашем установочном каталоге.
@NuPagadi, MSBuild ALL_BUILD.vcxproj / p: Configuration = Dedug - на этот случай хватит
Не работает на cmake -G "Visual Studio 10 2010 Win64": cannot open program database.
https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/fatal-error-c1033?view=vs-2017
Неустранимая ошибка C1033
Эта ошибка может быть вызвана ошибкой диска, временной блокировкой, созданной антивирусной программой, предыдущим экземпляром отладчика, который не был полностью выключен, или процессами параллельной сборки mspdbsrv.exe, которые пытаются получить доступ к тому же файлу, среди других возможных причины.
ЗАМЕТКА: Я не смог найти коды ошибок для VS2010 на сайте Microsoft. Я не думаю, что VS2010 больше поддерживается и может не работать с программами в Windows 10.
Думаю, мне стоит попробовать запустить cmake gui от имени администратора. У меня будет возможность попробовать в понедельник. Спасибо.
К сожалению, это не помогает. У меня нет антивируса. И не должно быть экземпляров отладчика, потому что я перезагружал систему.
Проблема заключалась в том, что я создал папку сборки в консоли WSL. Так что это может быть вызвано любыми эмуляторами, такими как Cygwin и т. д. Надеюсь, это кому-то поможет.
Я думаю, что предполагается построить простую тестовую программу без установки pdb.