代码之家  ›  专栏  ›  技术社区  ›  sixty4bit

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

  •  2
  • sixty4bit  · 技术社区  · 8 年前

    我正在进行“艰难地学习C”的练习2。其中一个额外的学分挑战是:

    阅读man cc,了解更多关于国旗的信息-墙壁和 -g做。

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

    为什么OSX的手册页(达尔文?)和Ubuntu不同?我显然对这些东西一无所知,但我会假设手册页会与软件一起打包,因此无论软件安装在哪里,都是一样的。

    2 回复  |  直到 8 年前
        1
  •  3
  •   Bill Lynch    8 年前

    很可能您的OSX安装使用的是名为clang的编译器,而Linux安装使用的则是名为gcc的编译器。

    因此,OSX上的手册页可能由clang团队编写,而Linux安装上的手册页面可能由gcc团队编写。

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

        2
  •  3
  •   Jean-Baptiste Yunès    8 年前

    编译器*nix手册页现在只提供了最基本的内容。编译器链中的控件太多,无法在手册页中提供所有控件。即使 --help 选项不会提供所有控件。 clang --help (在OSX上)提供了大约350行,但是 clang 警告控件大约有450个…很难计算编译器提供的选项数量,但可能有数千个。。。

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

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