取消编译gch文件

Aar*_*ken 9 c gcc precompiled-headers

我不小心删除了一个我没有添加到版本控制的.h文件,但我仍然有.h.gch.有什么方法可以解压缩.gch吗?

Mik*_*ola 3

这可能是不可能的。编译通常是一种单向过程;一旦你这样做了,就无法重建你的初始源代码,变量名、注释甚至某些子例程之类的东西都将被内联和消除。预编译头也是如此,因此不太可能有任何好的方法来从 .gch 文件重建文档和名称。您也许可以在标头中重建某些版本的名称,但这与您已经拥有的没有什么不同。除非你有后援,否则你的运气就很差了。

  • 我认为这在技术上可能是可能的,因为`gch`文件似乎是一种“二进制头文件”而不是真正“编译”的东西。预编译标头包含以前在标头中的所有信息,例如预编译标头中的宏/常量“#define”-d 就在那里,就像您真正包含标头一样。好消息就这么多。现在来说坏消息,我不相信存在可以逆转这一过程的工具。如果有的话,由于二进制表示不同,它也必须根据_exact_编译器版本进行定制。 (3认同)