【问题标题】:Specifying path to pdb symbol file in cmake在cmake中指定pdb符号文件的路径
【发布时间】:2015-06-05 08:56:12
【问题描述】:

我想根据这个doc更改pdb符号文件路径 并设置/PDBALTPATH:%_PDB%。但是,如果我写

set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG
    /OPT:REF /OPT:ICF /PDBALTPATH:%_PDB%")

并检查项目属性中的结果,它显示为/PDBALTPATH:%%_PDB%%。 留下百分号会导致/PDBALTPATH:_PDB

如何实现/PDBALTPATH:%_PDB%

到目前为止我尝试过的模式(所有模式都将 % 转换为 %% ):

  1. /PDBALTPATH:%_PDB%
  2. /PDBALTPATH:_PDB
  3. /PDBALTPATH:%25_PDB%25
  4. /PDBALTPATH:%%_PDB%%

【问题讨论】:

  • 这看起来像一个错误,对我来说没有简单的解决方法。

标签: visual-studio visual-c++ cmake pdb-files


【解决方案1】:

从 CMake 3.1 开始,有一个 TARGET_PDB_FILE_NAME 生成器表达式 (doc)。它只计算文件名,没有路径。

所以,你可以通过将其替换为生成时pdb文件的实际名称来实现%_PDB%的效果。不过,您需要为每个感兴趣的目标指定链接器标志。

命令会是这样的

# Suppose
add_library(foo ${foo_sources}) # or add_executable

# Then
target_link_options(foo PRIVATE /DEBUG /OPT:REF /OPT:ICF /PDBALTPATH:$<TARGET_PDB_FILE_NAME:foo>)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多