编译pdb文件的CMake输出路径

时间:2021-01-11 04:27:21

标签: cmake pdb-files

我正在尝试为 CMake 中静态库的程序数据库 (pdb) 文件指定输出路径。我认为 CMake 称它们为编译 pdbs,而不是链接器 pdbs。

从 CMake 的文档中我发现我可以通过 COMPILE_PDB_OUTPUT_DIRECTORY 指定 pdb 输出目录。这按预期工作。我还可以通过 COMPILE_PDB_NAME 指定 pdb 文件的名称。这也按预期工作。但是,我在目录和名称之间附加了一个无关的配置字符串,它似乎不受前两者中的任何一个控制。也就是说,最终输出路径的形式为 C:\mypdboutputpath\RelWithDebInfo\mypdbname.pdb,其中 RelWithDebInfo 对应于当前配置。但是,我的输出路径已经包含我自己的配置说明符(我的库输出目录的格式为 lib\msvc64-relwithdebinfo)。我一直在尝试设置全局和特定于目标的 pdb 名称和目录,但它们不影响是否附加配置字符串。

如何去掉pdb输出路径中附加的配置字符串?

虽然 Visual Studio 是多配置的,但我的方法是像使用单配置一样使用 CMake,即在运行 CMake 时选择配置。

1 个答案:

答案 0 :(得分:1)

帮助我的是设置属性 countifs( A2:A100 , "<>**" , B2:B100 , "<>**") 而不是 COMPILE_PDB_OUTPUT_DIRECTORY_${CFG}。对于您的示例,它可能是 COMPILE_PDB_OUTPUT_DIRECTORY

我在 CMake 文档中没有找到任何关于此的内容,但因为同样的事情适用于 COMPILE_PDB_OUTPUT_DIRECTORY_RELWITHDEBINFO 属性。 CMake docs 特别提到了这个属性的这种行为,所以我认为用 LIBRARY_OUTPUT_DIRECTORY 尝试它也是值得的,它确实有效。希望这不是一些未定义的行为会在未来发生变化。 FWIW 我用 CMake 3.18.1 测试了它

对于 OP 来说可能为时已晚,但也许它可以帮助像我这样的其他可怜人。

相关问题