CMake 不会为简单的测试程序生成 vc pdb
CMake doesn't generate vc pdb for simple test program
我正在尝试在 Windows 10 上使用 CMake。我创建了一个 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
文件。
https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/fatal-error-c1033?view=vs-2017
致命错误 C1033
此错误可能是由于磁盘错误、防病毒程序创建的临时锁定、尚未完全关闭的先前调试器实例或试图访问的并行构建 mspdbsrv.exe 进程引起的同一个文件,以及其他可能的原因。
注意:
我在 Microsoft 网站上找不到 VS2010 的错误代码。我认为 VS2010 不再受支持,可能无法在 Windows 10 上制作工作程序。
问题是因为我在 WSL 控制台中创建了构建文件夹。所以它可能是由任何种类的模拟器引起的,例如Cygwin等。希望它能对某人有所帮助。
我正在尝试在 Windows 10 上使用 CMake。我创建了一个 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
文件。
https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/fatal-error-c1033?view=vs-2017
致命错误 C1033
此错误可能是由于磁盘错误、防病毒程序创建的临时锁定、尚未完全关闭的先前调试器实例或试图访问的并行构建 mspdbsrv.exe 进程引起的同一个文件,以及其他可能的原因。
注意: 我在 Microsoft 网站上找不到 VS2010 的错误代码。我认为 VS2010 不再受支持,可能无法在 Windows 10 上制作工作程序。
问题是因为我在 WSL 控制台中创建了构建文件夹。所以它可能是由任何种类的模拟器引起的,例如Cygwin等。希望它能对某人有所帮助。