【问题标题】:What does "-o" means on shell command line? [duplicate]shell命令行中的“-o”是什么意思? [复制]
【发布时间】:2021-05-25 14:04:43
【问题描述】:

我是使用命令行和使用 C++ 的新手。当我在 Visual Studio Code 上搜索如何使用终端编译和运行 C++ 代码时,我得到了编译和运行“hello world”程序的示例。样本说

g++ -o hello.exe hello.cpp & hello.exe

我用谷歌搜索了-o,但没有成功(可能是因为这个词太短了)。我不知道-o 是什么意思,甚至不知道这个命令是用于什么类型的shell(命令提示符或powershell 或其他)。

【问题讨论】:

  • 你不需要放.exe扩展来生成输出文件
  • 提示:-foo 是 google 语法,用于忽略包含 foo 的结果。尝试"gcc -o" 找到例如这个stackoverflow.com/questions/29398522/…
  • 请注意,您可能应该在此处使用&& 而不是&& 告诉 shell 在后台启动编译器并在前台运行 hello.exe——它可能还不存在。
  • g++ --help 在这种情况下会有所帮助
  • 谢谢大家。我明白了。

标签: c++ windows powershell visual-studio-code command-line


【解决方案1】:

指定输出文件的名称。

g++(1): GNU project C/C++ compiler - Linux man page

-o 文件

将输出放在文件文件中。这适用于任何类型的输出,无论是可执行文件、目标文件、汇编文件还是预处理的 C 代码。

如果没有指定-o,默认是把一个可执行文件放在a.out,source.suffix的目标文件放在source.o,它的汇编文件放在source.s,一个预编译的头文件放在source。 suffix.gch,以及标准输出上的所有预处理 C 源代码。

【讨论】:

  • 谢谢。我明白了。
【解决方案2】:

这意味着编译代码的outfile输出应该命名为hello.exe

-o 文件

将输出放在文件文件中。这适用于任何类型的 正在生成输出,无论是可执行文件, 目标文件、汇编文件或预处理的 C 代码。

如果没有指定-o,默认是放一个可执行文件 a.out 中的文件,source.o 中 source.suffix 的目标文件, 它在 source.s 中的汇编文件,在 source.s 中的预编译头文件 source.suffix.gch,以及所有经过预处理的标准 C 源代码 输出。

这里还有更多flags

【讨论】:

  • 谢谢。我明白了。
猜你喜欢
  • 2018-10-17
  • 2014-07-30
  • 1970-01-01
  • 2014-11-07
  • 1970-01-01
  • 2016-05-08
  • 2020-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多