我正在练习"学习C的艰难方式。额外的信用挑战之一是:
阅读 man cc 以了解有关什么标志的更多信息 - 墙和 -g 做。
我在OSX上,使用man cc
打开手册页,但它没有任何关于-Wall
或-g
的信息。但是,我登录了一台运行 Ubuntu 的机器,发现一个更大的cc
手册页面确实包含这些信息。
为什么OSX(达尔文?)和Ubuntu的手册页不同?我显然对这些东西一无所知,但我会假设手册页会与软件一起打包,因此无论软件安装在何处都是相同的。
您的 OS X 安装可能使用的是名为 clang 的编译器,而您的 Linux 安装使用的是名为 gcc 的编译器。
因此,OS X 上的手册页可能是由 clang 团队编写的,Linux 安装上的手册页可能是由 gcc 团队编写的。
不过,这两个编译器通常接受相同的命令行参数。
编译器 *nix 手册页现在只给你最基本的知识。编译器链中的控件太多,无法在手册页中提供所有控件。即使--help
选项也不会为您提供所有控制权。 clang --help
(在OSX上)为您提供大约350行,但clang
警告控件的单个列表约为450行...很难计算编译器为您提供的选项数量,但可能有数千个......
对于这样的工具,我鼓励您查看在线手册。
为什么不同?因为编译器链依赖于架构/操作系统/ABI/汇编/链接器等。因此,相同的编译器(例如gcc
)在不同的平台上可以有不同的行为;手册应该不同。无论如何,-Wall
和-g
是非常常见和基本的,我很惊讶Wall
没有出现在OSX手册中......