Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GCC:如何暂停/继续编译?_Gcc - Fatal编程技术网

GCC:如何暂停/继续编译?

GCC:如何暂停/继续编译?,gcc,Gcc,是否有停止编译并将状态保存到文件,然后加载文件并继续编译的选项 我知道GCC有-fdump gimple tree选项,这使得GCC将一个内部表示“gimple”转储到一个文件中,但我找不到一个选项来重新加载该文件。我不知道如何停止GCC编译,但您可以缓存已编译的文件,这样GCC就不必再次编译它们了。看 因此,如果您在某个时间(例如使用Ctrl-C)突然停止编译,当您再次启动时,将从缓存中检索所有已编译的文件。我看到一些选项: 尝试将您的修补程序更新为4.3.1到4.5.0(不要尝试将修补后的

是否有停止编译并将状态保存到文件,然后加载文件并继续编译的选项


我知道GCC有
-fdump gimple tree
选项,这使得GCC将一个内部表示“gimple”转储到一个文件中,但我找不到一个选项来重新加载该文件。

我不知道如何停止GCC编译,但您可以缓存已编译的文件,这样GCC就不必再次编译它们了。看

因此,如果您在某个时间(例如使用Ctrl-C)突然停止编译,当您再次启动时,将从缓存中检索所有已编译的文件。

我看到一些选项:

  • 尝试将您的修补程序更新为4.3.1到4.5.0(不要尝试将修补后的4.3.1代码分支与4.5.0代码分支合并,那样会造成混乱)
  • 尝试将您的4.3.1补丁包含在4.5版本中。如果它修复了一个bug,这应该是可能的(只需在GCC bugzilla上提交一份详细的报告)
  • 尝试修改代码,使其不依赖于4.3.1补丁或插件基础设施
或者。。。所有这些


试图让您的代码在一个版本中编译一半,然后在另一个版本中完成,这听起来是完全没有希望的。

可能(不好)的解决方法:在虚拟机中使用GCC,您可以暂停并继续。您想要实现什么?@Mat实际上,我当时想使用不同版本的GCC。我有一个GCC4.3.1的补丁,但我还需要使用GCC插件DragonEgg,在GCC4.5.0之前没有插件。我尝试将GCC4.3.1的代码与补丁和GCC4.5.0合并,但失败了。我认为这太难了。当然,如果有人能给我建议如何合并,我将不胜感激。我用了KDiff3,很可能你是对的,没希望。请你详细解释一下第一种选择好吗?我不能将补丁应用到4.5.0,对吗?你说的是ABOT重写4.5.0版本的补丁源代码吗?你应该尝试将你的补丁应用到4.5.0版本,并尝试自己修复拒绝的补丁。或者,如果补丁足够短,只需看看它做了什么,并尝试在4.5.0代码上做同样的事情。如果修补程序很复杂,那么要做到这一点并不容易。而GCC的来源是很难进入的。除非你的补丁是一个错误修复,最简单的选择可能是第三个。你能建议gui补丁工具吗?我不知道。既然你这么问,我就重复我说的:第三种选择很可能是最简单的。