【发布时间】:2015-01-21 06:02:27
【问题描述】:
当我为调试版本安装库时,pdb 文件也会被复制。
我也希望发布版本也一样,但 CMake 不这样做。所以我必须手动选择 CMAKE_BINARY_DIR 中的 *.pdb 文件并复制它们。
基本上,我该怎么做?或者有没有其他方法可以解决这个问题?
【问题讨论】:
当我为调试版本安装库时,pdb 文件也会被复制。
我也希望发布版本也一样,但 CMake 不这样做。所以我必须手动选择 CMAKE_BINARY_DIR 中的 *.pdb 文件并复制它们。
基本上,我该怎么做?或者有没有其他方法可以解决这个问题?
【问题讨论】:
一种方法是像这样使用 Cmake 的“文件”函数。
if(CMAKE_BUILD_TYPE EQUAL "RELEASE")
file(GLOB filelist ${PATH_TO_PDB_FILES}/*.pdb)
file(COPY ${filelist} DESTINATION ${PATH_TO_PDB_DESTINATION})
endif(CMAKE_BUILD_TYPE EQUAL "RELEASE")
第一个“file”函数调用使用“GLOB”选项并生成位于“PATH_TO_PDB_FILES”目录中的 .pdb 文件列表(称为“filelist”)。
第二个“file”函数调用使用“COPY”选项,它使用第一个“file”函数调用生成的文件列表并将这些文件复制到“PATH_TO_PDB_DESTINATION”目录中。
我还添加了 if 语句来检查您是否正在进行发布构建。 (假设您只想在发布版本上执行此操作。)
编辑:如果我理解正确,您想在安装阶段复制 pdb 文件。如果是这种情况,应该这样做:
INSTALL(DIRECTORY ${PATH_TO_PDB_FILES}
DESTINATION ${PATH_TO_PDB_DESTINATION}
CONFIGURATIONS Release
FILES_MATCHING
PATTERN *.pdb
)
【讨论】:
if(CMAKE_BUILD_TYPE EQUAL "RELEASE"):stackoverflow.com/questions/24460486/…