在Visual C++ 2003中删除调试符号 也许有人可以告诉我如何从Visual Studio 2003编译的C++应用程序中删除调试符号?我将其编译为发行版,这些符号是已经删除了还是仍然存在?如果有,我如何删除它们

在Visual C++ 2003中删除调试符号 也许有人可以告诉我如何从Visual Studio 2003编译的C++应用程序中删除调试符号?我将其编译为发行版,这些符号是已经删除了还是仍然存在?如果有,我如何删除它们,c++,visual-studio,debugging,C++,Visual Studio,Debugging,谢谢 是的,在发布模式下编译后,调试符号已被删除 向二进制文件中添加调试符号会增加二进制文件的大小,因为这是程序运行所需的额外信息。在调试模式下,这些符号会添加到二进制文件中,因为程序正在开发中,因此调试可能需要这些符号。但是,在发布模式下,二进制文件的大小应尽可能小。开发已经完成,因此,一旦选择发布模式,这些额外的调试信息已经删除。是,一旦在发布模式下编译,调试符号就已经删除 向二进制文件中添加调试符号会增加二进制文件的大小,因为这是程序运行所需的额外信息。在调试模式下,这些符号会添加到二进制

谢谢

是的,在发布模式下编译后,调试符号已被删除


向二进制文件中添加调试符号会增加二进制文件的大小,因为这是程序运行所需的额外信息。在调试模式下,这些符号会添加到二进制文件中,因为程序正在开发中,因此调试可能需要这些符号。但是,在发布模式下,二进制文件的大小应尽可能小。开发已经完成,因此,一旦选择发布模式,这些额外的调试信息已经删除。

是,一旦在发布模式下编译,调试符号就已经删除


向二进制文件中添加调试符号会增加二进制文件的大小,因为这是程序运行所需的额外信息。在调试模式下,这些符号会添加到二进制文件中,因为程序正在开发中,因此调试可能需要这些符号。但是,在发布模式下,二进制文件的大小应尽可能小。开发已经完成,因此,一旦选择发布模式,这些额外的调试信息已经被删除。

据我所知,所有调试信息都存储在.pdb文件中。在.exe中,只有此.pdb文件的名称,仅此而已。做一个实验,亲眼看看。当然,不要更改任何其他选项,使用和不使用调试信息构建版本并比较差异。文件应该几乎相同。没有理由从发布版本中排除调试信息,而且有充分的理由将其包括在内。

据我所知,所有调试信息都存储在.pdb文件中。在.exe中,只有此.pdb文件的名称,仅此而已。做一个实验,亲眼看看。当然,不要更改任何其他选项,使用和不使用调试信息构建版本并比较差异。文件应该几乎相同。没有理由将调试信息从发布版本中排除,也有充分的理由将其包括在内。

使用调试信息设置来控制生成调试符号的方式和位置,无论该信息是保存在object.obj文件中还是保存在程序数据库PDB中。 请参阅MSDN中的


在PDB数据库中正确生成调试符号不应影响程序的性能。请参阅John Robbin的博客

使用调试信息设置来控制生成调试符号的方式和位置,无论这些信息是保存在object.obj文件中还是保存在程序数据库PDB中。 请参阅MSDN中的


在PDB数据库中正确生成调试符号不应影响程序的性能。参见John Robbin的博客

该实验的目的是发现在构建时使用和不使用调试信息的差异。这在版本构建中非常重要。在进行此实验时,所有其他编译器选项应保持不变。我错误地理解为building debug和release,并比较了两者之间的差异。为了更清楚,我删除了debug build的内容。不管怎么说,调试构建与本故事无关。本实验的目的是找出在构建时使用和不使用调试信息的区别。这在版本构建中非常重要。在进行此实验时,所有其他编译器选项应保持不变。我错误地理解为building debug和release,并比较了两者之间的差异。为了更清楚,我删除了debug build的内容。无论如何,调试构建与这个故事无关。