我在练习2"学习C艰难的方式。额外的信贷挑战之一是:
阅读man cc以了解有关标志-Wall和的更多信息 -g do。
我在OSX上并使用man cc
打开手册页,但它没有关于-Wall
或-g
的任何信息。但是,我登录了一台运行Ubuntu的机器,发现了一个更大的cc
手册页,其中包含了这些信息。
为什么OSX(Darwin?)和Ubuntu的手册页有所不同?我显然对这些内容一无所知,但我会假设手册页会与软件一起打包,因此无论软件安装在何处都是相同的。
答案 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手册中...