Linux在编译我的工作时随机删除了我的文件?

时间:2017-11-21 22:42:43

标签: linux compilation gnu recover

gcc -L/root/Desktop - Wall -o prog3.c -pthread -lcopy
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.0: In function '_start': (.text+0x20): undefined reference to 'main' 
collect2: error: ld returned 1 exit status

这是我的错误代码。 prog3.c无处可寻,究竟发生了什么事让我的档案回来?粗体是我运行的命令,其余的是生成的控制台输出

2 个答案:

答案 0 :(得分:0)

您的问题在于:-o prog3.cgcc的{​​{3}}用于告诉gcc它应该为其生成的可执行文件指定哪个名称。所以在这里,你基本上要求你的编译器用可执行文件替换你的prog3.c源文件。可悲的是你的代码已经消失......

答案 1 :(得分:0)

在这种情况下,您的选择的小附录:

  1. 它是Git(或任何其他版本控制)存储库。在这种情况下,您可以简单地从上一次提交中获取它

  2. 您的编辑器/ IDE具有一些备份系统。有时我需要带回一个我认为不必要的文件。对于这种情况,我最喜欢的文本编辑器应该已经在适当的位置创建了备份文件(例如$XDG_DATA_HOME/vim/backup)。

如果没有上述任何一项,但您之前仍然可以正确编译二进制文件

  1. 您可以尝试反编译,但是即使成功,此过程也不是无损的(例如,代码基本上是意大利面条)。

  2. 使用-g标志进行编译时,可能可以从调试信息中检索代码。

  3. 您至少可以将其反汇编为汇编代码。