首页 > 解决方案 > 我不小心在命令中写了错误的文件名并且文件已删除

问题描述

我想通过终端运行 ac 程序,而不是编写以下内容:gcc -o main.c program.c ,我编写了以下内容:gcc -o main,c program.c。不幸的是,这让我的文件“program.c”消失了,也许是删除了它,并创建了一个名为“main,c”的新 txt 文件,如下所示:

在此处输入图像描述

现在,我在几个网站上搜索了很多这个问题,但我找不到一个兼容的案例。有没有办法恢复c文件?

谢谢!

标签: cgccclion

解决方案


恢复原始源文件不是编程问题,而是一般计算问题。使用任何工具(文字处理器、照片编辑器或在本例中为编译器),如果您重写文件,原始文件将被替换,因此不再可用。

您似乎对如何驱动编译器感到非常困惑——您所说的您采取的行动本身不会导致您陈述的结果;我怀疑在您的困惑中,您采取了其他只会使您的情况恶化的行为。

在任何情况下,这两个命令行都不正确。-o选项指定输出文件名,在第一种情况下它会创建或覆盖main.c,在第二种情况下它会创建 main,c

如果你只执行了第二个命令,main,c将会被创建,并且main.c仍然存在。这些命令都不会删除任何内容,但可能会用目标代码文件覆盖源文件,使其无用。

目前尚不清楚您实际尝试做什么,但如果您尝试编译main.c以创建名为 的程序program,则:

gcc -o program main.c

但是,如果您尝试编译和链接两个名为main.cprogram.c创建可执行文件的源文件,则:

gcc -o program main.c program.c

甚至:

gcc -c main.c 
gcc -c program.c
gcc -o main.o program.o

从评论看来,实际上您正在尝试编译program.c以创建一个名为main.c. 不要那样做!.c 扩展名用于指示 C源文件-编译器的输入)。编译器的输出是二进制目标代码(并且在隐式链接之后是二进制可执行文件)。那么你需要的只是:

gcc -o program program.c

这些都不能解释您如何设法删除program.c甚至创建一个名为program.c.o而不是简单的文件program.o- 提供的“重现步骤”是不合理的。你显然做了一连串错误的行为,最终到了你现在的位置。拆开它可能是徒劳的;它消失了,你必须重新开始,小心,正确使用编译器,也许在进一步试验之前制作一个备份副本或使用版本控制系统。


推荐阅读