unix - 更改unix中GCC的编译顺序会删除文件吗?

标签 unix gcc command-line compiler-construction

所以我真的搞砸了..我希望有人能告诉我,我并没有因为这个简单的打字错误而毁掉了我过去 4 周所做的一切..

我不断对我的 C 程序进行更改,并在终端中使用它重新编译以测试更改:

gcc -o server server.c

由于过去 5 个小时的大部分时间都是在编程......我上次尝试编译时不小心输入了以下内容:

gcc -o server.c server

我收到一些长消息并意识到我的错误..尝试使用我列出的第一种方式重新编译..它说“没有这样的文件 server.c”

我输入了“ls”,果然……我的程序不在那里。

请告诉我我所做的一切并没有消失? :((

最佳答案

不幸的是,您告诉编译器读取您的可执行文件,并将其输出写入您的源文件。文件不见了。如果您使用的是 Windows 系统,也许可以使用 Norton Utilities 之类的工具来取消删除。如果没有,你可能就不走运了。

下次,考虑使用 Makefile 来包含编译器命令,这样您只需键入“make”即可构建您的程序。其他策略包括在整个工作过程中使文件在单个编辑器 session 中保持打开状态,以及使用 git 或 subversion 等源代码控制系统(这也可以让您备份到文件的先前版本。)

关于unix - 更改unix中GCC的编译顺序会删除文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937899/

相关文章:

c - 前景信号 tcsetpgrp c

c - 获取__data_start符号的地址

c++ - std::unordered_map::emplace 问题与私有(private)/删除的复制构造函数

linux - 如何使用 xargs 复制名称中包含空格和引号的文件?

bash - 使用命令行linux在单行位置插入文本文件的全部内容

css - SASS 编译扩展和压缩的 CSS 并重命名输出

C:如何shmat一个结构?

linux - 无法在 crontab 中执行 xrandr 命令(即使提供了 $DISPLAY arg)

c++ - 从 gcc 3.3.3 移植到 4.1.0,C++ 模板,对 undefined reference

linux - Tcl 嵌套循环 : wrong # args: should be "for start test next command"