2015-07-12 120 views
0

如果我有一系列需要使用Make构建的C/C++程序,如果我在程序执行可执行文件时对代码进行了更改并重新编译,是否会混淆代码运行?或者是在运行时之前在可执行文件中预加载的所有信息?在程序执行时重新编译代码

谢谢。

+0

您通常必须重新启动调试会话。在Windows OS IIRC上覆盖正在运行的程序有一些限制。 –

+4

答案取决于您使用的操作系统。在Linux/Unix/MacOS中,任何时候都可以使用同名的新文件“替换”任何文件 - 旧文件保持原样,直到它关闭(但不再出现在目录列表中)。在VAX/VMS上,会创建一个新版本的文件,所以也没问题(只要启用了文件版本控制)。在Windows上,它将无法正常工作,因为您将尝试写入与执行该文件相同的可执行文件。 –

+0

可能取决于您的平台。从不同的副本运行很困难吗? –

回答

0

这完全取决于您使用的任何操作系统。

Linux非常高兴继续执行一个程序,该程序的二进制文件已被删除,并被新的二进制文件取代。

这是我的理解,另一方面,微软Windows在相同的情况下相当脾气暴躁,如果尝试这样的事情就不会高兴。

0

如果我的理解正确,您可以在运行程序时编辑代码,并且程序在运行时不会改变。