当我编译一个程序时,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/