我想根据这个改pdb符号文件路径doc
并设置 /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%
?
到目前为止我尝试过的模式(所有模式都将 % 变成 %% ):
/PDBALTPATH:%_PDB%
/PDBALTPATH:_PDB
/PDBALTPATH:%25_PDB%25
/PDBALTPATH:%%_PDB%%
最佳答案
自 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>)
关于visual-studio - 在cmake中指定pdb符号文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30662342/