-Werror在Ubuntu终端中做了什么?

时间:2018-06-12 01:11:25

标签: c gcc compilation

在大学,我们被教导使用以下方式编译我们的项目:

gcc -Wall -Werror -ansi -o myfile.out myfile.c -lm

但是,我似乎无法在网上找到有关' Werror'' {{1}}'呢?

1 个答案:

答案 0 :(得分:3)

它将所有警告报告为错误,因此编译将停止而不继续。否则,只有警告会在-Wall的控制台上显示,但编译不会停止。如果您想了解它,请前往gnu page

-Werror

    Make all warnings into errors.

以下是一个示例代码:

#include <stdio.h>

int main()
{
    int i;
    printf("%s\n", "Good");
    return 0;
}

当您通过-Werror

$ gcc -Wall -Werror -ansi abc.c
abc.c: In function ‘main’:
abc.c:5:9: error: unused variable ‘i’ [-Werror=unused-variable]
     int i;
         ^
cc1: all warnings being treated as errors

如果没有-Werror,它将编译并运行。

$ gcc -Wall  -ansi abc.c
abc.c: In function ‘main’:
abc.c:5:9: warning: unused variable ‘i’ [-Wunused-variable]
     int i;
         ^

$ ./a.out 
Good