【问题标题】:CMake copy PDB files for release buildsCMake 复制 PDB 文件以用于发布版本
【发布时间】:2015-01-21 06:02:27
【问题描述】:

当我为调试版本安装库时,pdb 文件也会被复制。

我也希望发布版本也一样,但 CMake 不这样做。所以我必须手动选择 CMAKE_BINARY_DIR 中的 *.pdb 文件并复制它们。

基本上,我该怎么做?或者有没有其他方法可以解决这个问题?

【问题讨论】:

    标签: cmake pdb-files


    【解决方案1】:

    一种方法是像这样使用 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
    )
    

    【讨论】:

    • 在构建库之前不会生成 pdb 文件。这应该作为构建后任务运行,该怎么做??
    • 关于if(CMAKE_BUILD_TYPE EQUAL "RELEASE")stackoverflow.com/questions/24460486/…
    • 请看我的编辑,这个新的解决方案应该可以解决问题。
    猜你喜欢
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    相关资源
    最近更新 更多