kor*_*ire 3 linux gcc echo gdb tee
我想知道是否有人知道如何将 GCC 的编译警告放在文本文件中?
例如 :
我(心甘情愿地)写了一个未定义的函数foo()
。所以 gcc 告诉我:
warning: implicit declaration of function 'foo [Wimplicit-function-declaration]
Run Code Online (Sandbox Code Playgroud)
我怎样才能把这一行写在一个文本文件中?我在 gcc 的手册页中搜索一个选项:
https://linux.die.net/man/1/gcc
但没有找到任何相关信息。我尝试的命令echo
,并tee
要做到这一点,但这些命令只赶上编译行(如:... gcc -o test test.o main.o ...
)
您可以重定向输出,假设您的程序是:
main()
{
}
Run Code Online (Sandbox Code Playgroud)
编译时,gcc 会说:
a.c:1:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
main()
^~~~
Run Code Online (Sandbox Code Playgroud)
这显示在终端中。您想要做的是将其重定向到一个文件。在这种情况下,您需要重定向标准错误输出(在终端中您会看到:标准输出和标准错误输出):
$ cc a.c 2> output.txt
Run Code Online (Sandbox Code Playgroud)
2>
表示将错误输出(在本例中为警告)发送到此文件。
一个简单的方法>
是重定向标准输出。