【发布时间】:2013-02-03 11:42:21
【问题描述】:
我正在使用 CMake 命令安装 PDB 文件,以便在我的 C++ 应用程序的开发人员分发版中启用调试。命令如下:
INSTALL(DIRECTORY ${PROJECT_BINARY_DIR}/Debug
DESTINATION bin
FILES_MATCHING
PATTERN *.pdb
)
另外,我已经设法在同一级别的“src”文件夹中安装了用于构建该开发人员分发的相关源代码,因此我的顶级分发文件夹如下所示:
include\
src\
lib\
bin\
share\
doc\
3rdparty\
etc\
如何让 PDB 文件“知道”源在哪里(我假设这是必需的)?是否有可以实现此目的的 CMake 命令?什么是一个小例子?
【问题讨论】:
-
你可能想看看this question。
-
感谢@Angew - 我阅读了这篇文章以及其中链接中的文章。我真的必须经历所有的符号服务器业务吗?我想我要问的是:有没有一种聪明的方法来打包 PDB 和匹配的源,这样我就不必做任何其他事情(按照第一个答案的思路)。
-
我没有异地调试的个人经验,但我从所有关于移动 PDB 的阅读中得到的印象是,您必须使用
subst或完全镜像原始源代码树.出于好奇,我计划有一天调查这个问题;不幸的是,对于某一天的价值相当不明确。 -
不幸的是,PDB 中似乎嵌入了 absolute 路径名,因此必须对这些路径名进行镜像。这就是为什么建议使用
subst。 -
这个想法是在
N:驱动器上进行构建,以便将N:\作为根嵌入到 PDB 文件中。然后,其他开发人员必须在他们的计算机上执行subst,以便他计算机上N:驱动器上的源路径与您计算机上的路径相同。 PDB 将起作用。 IE。如果你有一个文件C:\MySources\main.cpp,你做了subst N: C:\MySources,如果他有一个文件D:\Devel\Other\main.cpp,他必须做subst N: D:\Devel\Other,然后也从N:驱动器工作。
标签: c++ windows visual-studio cmake