通过M-x compile
(运行文件夹的Makefile)从Emacs编译.cpp文件时,在编译缓冲区(以编译模式显示)上看到以下内容:
file1
,file2
,file3
或file4
)? file2
行之后有一个逗号,在file3
行之后有一个冒号,带有file4
的行包含两个数字,两个冒号分隔开? 我正在使用Emacs的
24.2.1
和gcc-4.4.5-x86_64
。 最佳答案
实际触发警告的结构(在本例中为#warning
预处理程序指令)在file4
中。上面的内容是#include
堆栈的痕迹,最里面但只有一个:在这种情况下,file3
包括file2
,其中包括file1
,其中包括file4
。
当gcc知道触发诊断的结构的列号时,它将打印文件名,冒号,行号,另一个冒号和列号,如file4
行所示。第一个数字是行号(28),第二个数字是列号(在这种情况下,您会发现#
的#warning
在列2中)。当gcc不知道列号时,它仅打印文件名,冒号和行号。 #include
堆栈就是这种情况,因为它不会麻烦记录#include
指令的确切列。 Emacs的编译模式了解如何解析这两种语法:您会发现,如果使用C-x来翻页诊断程序,则当有可用的列号时,Emacs会将光标放置在适当的列上。
本报告结尾处的冒号和逗号仅符合英语标点符号惯例;他们什么都不是。