当我编译一个程序时,gcc给了我gcc而不是行号,这使得精确定位错误变得非常困难!
怎么了?
test.c包含:

#include "bgraph_utils.h"

int main(){
    g
}

bgraph_utils.h包含:
#include "bgraph_rep.h"

bgraph_rep.h包含:
#include "dll_list.h"

dll_list.h为空
每一个标题都有其他的定义,但为了简洁起见,我省略了它们
使用:gcc tets.c编译时,获取错误:
In function ‘main’:
cc1: error: ‘g’ undeclared (first use in this function)
cc1: error: (Each undeclared identifier is reported only once
cc1: error: for each function it appears in.)
cc1: error: expected ‘;’ before ‘}’ token

如果只在bgraph_rep.h中包含test.c,行号将正确输出。

最佳答案

几乎唯一一次gcc给我一个以cc1开头的错误是当我传递一个坏标志时:

$ gcc -abadflag file.c
cc1: error: unrecognized command line option "-abadflag"

你就是这样吗?

关于c - 代替行号,GCC打印cc1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4466973/

10-10 07:20