`man cc`:没有关于-Wall和-g标志的信息(艰难地学习C)

时间:2016-02-05 05:27:30

标签: c macos ubuntu man cc

我在练习2"学习C艰难的方式。额外的信贷挑战之一是:

  

阅读man cc以了解有关标志-Wall和的更多信息   -g do。

我在OSX上并使用man cc打开手册页,但它没有关于-Wall-g的任何信息。但是,我登录了一台运行Ubuntu的机器,发现了一个更大的cc手册页,其中包含了这些信息。

为什么OSX(Darwin?)和Ubuntu的手册页有所不同?我显然对这些内容一无所知,但我会假设手册页会与软件一起打包,因此无论软件安装在何处都是相同的。

2 个答案:

答案 0 :(得分:3)

您的OS X安装可能正在使用名为clang的编译器,并且您的Linux安装使用名为gcc的编译器。

因此OS X上的手册页可能是由clang团队编写的,Linux安装上的手册页可能是由gcc团队编写的。

这两个编译器通常接受相同的命令行参数。

答案 1 :(得分:3)

编译器* nix手册页现在只为您提供了非常基础的知识。编译器链中的控件太多,无法在手册页中为您提供所有这些控件。即使--help选项也不会为您提供所有控件。 clang --help(在OSX上)为您提供了大约350行,但clang警告控件的单个列表大约为450 ...很难计算编译器为您提供的选项数量,但可能有数千个...

对于这样的工具,我建议您查看在线手册。

为什么不同?因为编译器链依赖于Architecture / OS / ABI / Assembly / Linker等。所以相同的编译器(例如gcc)在不同平台上的行为可能不同;手册应该是不同的。无论如何,-Wall-g是非常常见和基本的,我很惊讶Wall没有出现在OSX手册中...