在命令行编码,什么是-Wall?

时间:2017-09-04 19:22:18

标签: linux command-line command-line-arguments

我正处于编码类中,我们通过命令行参数在C ++中进行编码,但她使用的是某些我无法通过Google搜索找到的内容,但我在其他地方的帖子中看到过这个网站。我的VM是linux。

-Wall在上下文中做了什么“g ++ -Wall -std = c ++ 11 test.cpp -o test”?我的教师也使用-o并说它创建了一个可执行文件,但我没有看到一个正在制作。测试是命令吗?如果可能的话,以外行人的话来说是最好的。

(有人在这篇文章的评论中使用了-Wall作为参考Function stoi not declared

在这种情况下,在命令行编码时,哪些其他命令可能会有用?我熟悉非常基本的,如cd,ls,pwd,。/ a.out,mkdir,cat和vim(虽然在vim中,我只知道如何插入和退出/保存)。

感谢您的帮助; -Wall是我的主要问题,但对其余部分的任何帮助都将受到超级赞赏。

2 个答案:

答案 0 :(得分:4)

来自g++手册页:

  -Wall
      This enables all the warnings [...]

还有更多,请随时阅读。

答案 1 :(得分:1)

祝福你的导师教你在命令行上编译!

GCC编译器包含大量文档here(可能已安装在您的计算机上,可通过info gcc获得)。请特别阅读GCC command options章节(关于调用GCC)。您也可以使用man gcc命令尝试手册页(但请在man man之前尝试了解man(1) ...)。对于gcc,手册页不完整(w.r.t。info gcc)。你也可以试试gcc --help

我强烈建议使用gcc -Wall -Wextra -g(针对C代码)或g++ -Wall -Wextra -g针对C ++代码进行编译(还添加其他有用的选项,例如-std=c++11)。 -Wall选项几乎要求所有警告,-Wextra要求更多警告,-g选项要求调试信息(这些天以DWARF格式) 。然后,您可以(并且应该)使用GDB debugger。阅读Debugging with GDB手册。

稍后,您出色的讲师可能会教您使用build automation工具(例如GNU makeninja),这些工具可以很好地运行命令(特别是编译命令)来自动化构建过程。可以使用makeninja

编译由多个translation units组成的复杂程序,甚至使用临时C代码生成器(例如bison

此外,您可能会了解version control systemsgit

顺便说一句,我建议下载并研究源代码并构建一些free software程序(例如http://github.com/或其他地方)。你会学到很多东西。

顺便说一句,请避免命名executable test,因为test是一个非常标准的命令(请参阅test(1)),通常以{{{ 3}}