我输入了 g++ -o main.cpp main 并且我丢失了我的程序 [关闭]
Posted
技术标签:
【中文标题】我输入了 g++ -o main.cpp main 并且我丢失了我的程序 [关闭]【英文标题】:I typed g++ -o main.cpp main and I lost my program [closed] 【发布时间】:2018-11-25 22:51:46 【问题描述】:我刚刚在控制台中写入了以下内容:
g++ -o main.cpp main
我的main.cpp
不见了。
我刚刚失去了 3 个小时的工作吗?
【问题讨论】:
试试g++ --help
或man g++
一句话,“是的”。从中学到什么 - 使用 git 或 mercurial 等版本控制系统,并在您编写的每几条语句中提交它。
你了解过cmd文件吗?也许您的第一个 cmd 文件可能总是会制作备份副本。然后当你看到你的 cmd 错误时......有一天,你会想尝试 make,它的学习曲线更陡峭。第 1 步 - 输入一个可执行的 cmd 文件(可能是 build?),它运行 g++ 命令来编译 helloWorld.cpp。如果它在不覆盖您的输入的情况下工作,请继续执行第 2 步。
【参考方案1】:
是的,你做到了。 -o
标志指定输出文件(在您的情况下为main.cpp
,因为这是紧随其后的文件名):
g++ -o main.cpp main
\_________/ \__/
\ \_This is the input file.
\_____This specifies the output file.
换句话说,您已经告诉编译器尝试编译通常是您的可执行文件,并将结果写入您的源文件(覆盖它)。更合适的命令是:
g++ -o main main.cpp
这是开发人员不时经历的那些教育时刻之一(包括像我这样的老黑客),应该说服你定期提交到 git
(或其他源代码控制系统),或使用构建系统而不是复杂的命令行来编译代码。
【讨论】:
我明白这里发生了什么 - 我不明白你的解释。 还有为什么不手动输入命令,而是将它们放在 makefile 或其他构建脚本中。 @o11c:命令越复杂,出错的可能性就越大。对比gcc -std=c11 -O2 -funsigned-bitfields -fallow-single-precision -fgimple -c -o prog.o prog.c
和 make
:-) 显然,您仍然必须在 第一次 时间(在配置构建系统时)将其做好,但是一旦完成,您通常不需要再次担心它。以上是关于我输入了 g++ -o main.cpp main 并且我丢失了我的程序 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章