【发布时间】:2017-04-13 03:03:46
【问题描述】:
如何让 CMake 安装调试 Visual Studio 生成的 DLL 文件和 EXE 文件所需的配套 PDB 文件?
【问题讨论】:
标签: c++ visual-studio cmake
如何让 CMake 安装调试 Visual Studio 生成的 DLL 文件和 EXE 文件所需的配套 PDB 文件?
【问题讨论】:
标签: c++ visual-studio cmake
我已经挣扎了一段时间,试图为这个问题找到一个好的答案。我现在想我找到了一个:使用带有 $<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)