您的位置:主页 > hg0088 app >

不微少见条是很拥有用的 GCC 命令行选项(二)

时间:2018-12-05 08:49来源:[db:来源] 点击:

  带读

  gcc 编译器供了信直数不清的命令行选项列表。天然,没拥有拥有人会运用费过容许知晓它所拥局部命令行选项,条是拥有壹些命令行选项是每壹个 gcc 用户邑应当知道的 - 即苦不是必须知道。它们中拥有壹些很日用,其他壹些不太日用,但不日用并不虞味着它们的用途没拥有前者父亲。

  回顾

  在此雕刻个系列的文字中,我们集儿子合于壹些不日用条是很拥有用的 gcc 命令行选项,在第壹节曾经讲到几个此雕刻么的命令行选项。

  不知道你能否却以回想宗,在此雕刻个系列教养程的第壹派断的末了尾,我信皓的提到了开辟者们畅通日用到来生成正告的 -Wall 选项,并不带拥有壹些特殊的正告。假设你不了松此雕刻些特殊正告,同时不知道何以生成它们,不用担心,我将在此雕刻篇文字中详细说皓关于它们所拥局部底细。

  摒除此以外面,此雕刻篇文字也将触及与浮点值相干的 gcc 正告选项,以及在 gcc 命令行选项列表变得很父亲的时分何以更好的办它们。

  在持续之前,请记取,此雕刻个教养程中的所拥有例儿子、命令和指令邑已在 Ubuntu 16.04 LTS 操干体系和 gcc 5.4.0 上测试度过。

  生成 -Wall 选项不带拥局部正告

  固然 gcc 编译器的 -Wall 选项涵盖了绝父亲微少半正告标注识表记标注帜,依然拥有壹些正告不能生成。为了生成它们,请运用 -Wextra 选项。

  譬如,下面的代码:

  1.#include

  2.#include

  3.int main()

  4.{

  5. int i=0;

  6.

  10.

  11. if(i);

  12. return 1;

  13. return 0;

  14.}

  我不谨慎在 if 环境前面多打了壹个分号。当今,假设运用下面的 gcc 命令到来终止编译,不会生成任何正告。

  1.gcc -Wall test.c -o test

  条是假设同时运用 -Wextra 选项到来终止编译:

  1.gcc -Wall -Wextra test.c -o test

  会生成下面此雕刻么壹个正告:

  1.test.c: In function ‘main’:

  2.test.c:10:8: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]

  3. if(i);

  从下面的正告清楚的看到, -Wextra 选项从外面部展用了 -Wempty-body 选项,从而却以检测却疑代码并生成正告。下面是此雕刻个选项展用的整顿个正告标注识表记标注帜。

  ?-Wclobbered

  ?-Wempty-body

  ?-Wignored-qualifiers

  ?-Wmissing-field-initializers

  ?-Wmissing-parameter-type (但针对 C 言语)

  ?-Wold-style-declaration (但针对 C 言语)