c++ - 从 .rdata 部分删除 IMAGE_DEBUG_DIRECTORY

标签 c++ visual-c++ portable-executable

如何从 PE 的 .rdata 部分删除 IMAGE_DEBUG_DIRECTORY 数据?

我使用的是 MS Visual Studio 2015。我确实检查了项目属性的几乎所有编译选项。但是 IMAGE_DEBUG_DIRECTORY 数据仍然存在于我的输出可执行文件中......

最佳答案

您可以通过设置未记录的链接器选项 /EMITPOGOPHASEINFO 来做到这一点。所以转到链接器命令行并在其他选项中插入此字符串 (/EMITPOGOPHASEINFO)。这个选项抑制 pe 中的 pgo ( Profile-Guided Optimizations) 部分

另请阅读:Pogo aka PGO aka Profile Guided OptimizationWalkthrough: Using Profile-Guided Optimizations

当然你不能生成调试信息——使用/DEBUG链接器选项 - 确保链接器命令行中没有 /DEBUG 选项。或者使用 /DEBUG:NONE/EMITPOGOPHASEINFO 组合 - 在这种情况下不能是 IMAGE_DEBUG_DIRECTORY 在 pe 文件中

关于c++ - 从 .rdata 部分删除 IMAGE_DEBUG_DIRECTORY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45538668/

相关文章:

c++ - 量化库 + Python : TARGET() macro and default calendar (RuntimeError: option expired)

C++在范围内生成(xyz)点

c - 2008 年和 2010 年 Visual C 优化差异

C++ 函数指针语法

c++ - 无法分析超过一定大小的 PE 文件

c - 加载 PE header

visual-c++ - #pragma 部分和属性

c++ - 尝试在另一个类的头文件中使用对象,出现 “redefinition of class”错误

c++ - 如何从 IStream 初始化 IMimeMessage 对象

c++ - MSVC 直接构造函数调用扩展