2015-07-12 119 views
0

如果我有一系列需要使用Make構建的C/C++程序,如果我在程序執行可執行文件時對代碼進行了更改並重新編譯,是否會混淆代碼運行?或者是在運行時之前在可執行文件中預加載的所有信息?在程序執行時重新編譯代碼

謝謝。

+0

您通常必須重新啓動調試會話。在Windows OS IIRC上覆蓋正在運行的程序有一些限制。 –

+4

答案取決於您使用的操作系統。在Linux/Unix/MacOS中,任何時候都可以使用同名的新文件「替換」任何文件 - 舊文件保持原樣,直到它關閉(但不再出現在目錄列表中)。在VAX/VMS上,會創建一個新版本的文件,所以也沒問題(只要啓用了文件版本控制)。在Windows上,它將無法正常工作,因爲您將嘗試寫入與執行該文件相同的可執行文件。 –

+0

可能取決於您的平臺。從不同的副本運行很困難嗎? –

回答

0

這完全取決於您使用的任何操作系統。

Linux非常高興繼續執行一個程序,該程序的二進制文件已被刪除,並被新的二進制文件取代。

這是我的理解,另一方面,微軟Windows在相同的情況下相當脾氣暴躁,如果嘗試這樣的事情就不會高興。

0

如果我的理解正確,您可以在運行程序時編輯代碼,並且程序在運行時不會改變。