c - 我不小心在命令中写了错误的文件名并且文件已删除
问题描述
我想通过终端运行 ac 程序,而不是编写以下内容:gcc -o main.c program.c
,我编写了以下内容:gcc -o main,c program.c
。不幸的是,这让我的文件“program.c”消失了,也许是删除了它,并创建了一个名为“main,c”的新 txt 文件,如下所示:
现在,我在几个网站上搜索了很多这个问题,但我找不到一个兼容的案例。有没有办法恢复c文件?
- 此外,剩下的只有program.co文件和main,c文件。
谢谢!
解决方案
恢复原始源文件不是编程问题,而是一般计算问题。使用任何工具(文字处理器、照片编辑器或在本例中为编译器),如果您重写文件,原始文件将被替换,因此不再可用。
您似乎对如何驱动编译器感到非常困惑——您所说的您采取的行动本身不会导致您陈述的结果;我怀疑在您的困惑中,您采取了其他只会使您的情况恶化的行为。
在任何情况下,这两个命令行都不正确。该-o
选项指定输出文件名,在第一种情况下它会创建或覆盖main.c
,在第二种情况下它会创建 main,c
。
如果你只执行了第二个命令,main,c
将会被创建,并且main.c
仍然存在。这些命令都不会删除任何内容,但可能会用目标代码文件覆盖源文件,使其无用。
目前尚不清楚您实际尝试做什么,但如果您尝试编译main.c
以创建名为 的程序program
,则:
gcc -o program main.c
但是,如果您尝试编译和链接两个名为main.c
并program.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
- 提供的“重现步骤”是不合理的。你显然做了一连串错误的行为,最终到了你现在的位置。拆开它可能是徒劳的;它消失了,你必须重新开始,小心,正确使用编译器,也许在进一步试验之前制作一个备份副本或使用版本控制系统。
推荐阅读
- java - 如何在listview android中添加按钮onclick事件?
- javascript - 为什么我在 EJS 中收到“未定义”错误?
- azure-active-directory - 在 Azure AD B2C 中,如何在首次从社交登录登录时将社交帐户与任何现有本地帐户关联?
- .net-core - 用于多个 Azure Functions 的 Devops 管道
- vscode-settings - 我需要帮助来解决可点击按钮问题吗?
- linux - rancher-agent 失败并显示“无法找到容器 ID:\n0::/\n”
- gradle - 检测到重复的内容根
- apache-spark - 使用 spark udf 和使用带有 rdd 的 map 有什么区别?
- javascript - 如何从我的标头响应中获取我的 JWT?
- azure - 从 ARM 模板部署证书时出现 InternalServerError