2016-11-29 198 views

回答

9

我一直在努力寻找一个很好的答案来解决这个问题。我现在认为我找到了一个:使用带有$<TARGET_PDB_FILE:tgt>生成器表达式的安装文件命令。具体来说,下面的安装命令似乎工作。该命令会将目标$ {PROJECT_NAME} pdb文件复制到目标的安装bin目录。

install(FILES $<TARGET_PDB_FILE:${PROJECT_NAME}> DESTINATION bin OPTIONAL) 

该命令将为每个生成pdb文件的配置安装pdb文件。通过使用OPTIONAL,如果源pdb文件不存在,install命令将不会生成错误。该命令旨在用于使用add_library(${PROJECT_NAME} ...)add_executable(${PROJECT_NAME} ...)命令创建的目标。

这是我找到的最佳答案。请让我知道是否有更好的。我在cmake-generator-expressions文档的“信息表达式”部分发现了一些难以理解的TARGET_PDB_FILE发生器扩展的文档。