2012-06-15 21 views
1

在编译过程中,屏幕上出现很多错误。要开始解决它们,我需要向上滚动3页,4页。我尝试着在他们头上,但他们仍然在终端上。查看大错误输出的顶线

g++ -std=c++0x testCoverDownloader.cpp -I /usr/include/QtCore/ -I /usr/include/QtGui 2>&1 | head 

如何让我只看到顶部错误,然后向下滚动页面?上面的代码将输出显示为前10行。我想要的是所有的错误,但从一开始,所以我不需要向上滚动

+1

后停止编译<你的编译语句> 2>&1 | vim -'这应该将STDERR和STDOUT传递给vim进行查看。 – 2012-06-15 06:31:48

+0

或'<您的编译语句> 2>&1 |更多'。 (在Michael的评论帮助下) – Mohammad

+2

来自@Michael的评论的重要部分是重定向部分:来自编译器的错误放在'stderr'上。要将其管理到'head',一个像'more'或'less'这样的查看器或者像'vim'这样的编辑器,你需要将'stderr'重定向到'stdout'。这是用'&2> 1'(或更正确的'2>&1')完成的。有关重定向的更多信息,请参阅shell的手册页。 –

回答

1

如果你使用vim你可以尝试<your compile statement> 2>&1 | vim -这应该管STDERRSTDOUT vim的查看。

编辑: 添加在@joachim pilberg的注释,以提供更准确的答案:

的重要组成部分,是重定向部分:错误从编译器是 穿上标准错误。为了管理它,头像,或多或少的浏览器,甚至像vim这样的编辑器,都需要将stderr重定向到stdout。这是 什么用& 2> 1(或更正确地说2> & 1)完成。有关重定向的更多信息,请参阅shell的手册页 页面。

+0

[vickey @ tb tests] $ g ++ testCoverDownloader.cpp ../CoverDownloader.cpp -I/usr/include/QtGui/-I/usr/include/QtCore/-lQtGui -lQtCore -std = C++ 0x 2>&1 | vim Vim:警告:输入不是来自终端 Vim:读取输入错误,正在退出... Vim:保存文件... Vim:完成。 –

+1

'g ++ testCoverDownloader.cpp ../CoverDownloader.cpp -I/usr/include/QtGui/-I/usr/include/QtCore/-lQtGui -lQtCore -std = C++ 0x 2>&1 | vim -'我认为你可能错过了最后的'-' – 2012-06-18 04:07:54

+0

是的:P ..多数民众赞成在我寻找的解决方案:) –

2

除了使用2> & 1获得STDERR结果输出到标准输出,你可能会想尝试,以获得满意的结果到一个文件中供以后观看开球。

1

如果你使用vim,你可以尝试'你还可以添加-Wfatal-错误编译器选项第一个错误