我该如何让CMake安装伴随所需的PDB文件,以便调试由Visual Studio生成的DLL文件和EXE文件?
我该如何让CMake安装伴随所需的PDB文件,以便调试由Visual Studio生成的DLL文件和EXE文件?
我曾经为回答这个问题而苦苦挣扎,现在我认为我找到了一个好的解决方案:使用安装文件命令和$<TARGET_PDB_FILE:tgt>
生成器表达式(在CMake 3.1.3及更高版本中可用)。具体来说,下面的安装命令似乎有效。该命令将把目标${PROJECT_NAME} pdb文件复制到目标的安装bin目录中。
install(FILES $<TARGET_PDB_FILE:${PROJECT_NAME}> DESTINATION bin OPTIONAL)
该命令将会为每一个生成pdb文件的配置安装pdb文件。通过使用OPTIONAL
选项,如果源pdb文件不存在,安装命令不会报错。该命令旨在用于使用add_library(${PROJECT_NAME} ...)
或add_executable(${PROJECT_NAME} ...)
命令创建的目标。
这是我找到的最好的答案。如果有更好的答案,请告诉我。我在cmake-generator-expressions文档的“信息表达式”部分中发现了一些难以理解的TARGET_PDB_FILE
生成器表达式的说明。
install(FILES $<TARGET_PDB_FILE:${PROJECT_NAME}> CONFIGURATIONS "RelWithDebInfo" DESTINATION bin)
。 - Innokentiy Alaytsev