나는 오늘 플렉스와 들소로 놀고 있었는데, 뭔가 이상한 점이 내 관심을 끌었다.gcc는 소스의 출처를 어떻게 알 수 있습니까?
localhost:c math4tots$ lex c.l
localhost:c math4tots$ yacc -d c.y
localhost:c math4tots$ rm c.l c.y
localhost:c math4tots$ gcc c.c lex.yy.c y.tab.c
c.y: In function ‘opr’:
c.y:120: error: ‘nodeType’ has no member named ‘oper’
난 단지 c.c의 된 lex.yy.c 및 y.tab.c가을 (c.h와 y.tab.h도 헤더에 포함된다)에 전달했지만, 어떻게 든 GCC는 c.l 및 c.y.에 대해 알고 사실, c.l과 c.y를 삭제 한 후에도 gcc는 c.y에서 코드의 오류가 어디인지를 압니다. 어떻게 그럴 수 있죠?
과거에 사용했던 여러 가지 도구에 대해 비슷한 것을 보았지만 정확히 무엇인지 기억할 수 없습니다.
항상 GCC 컴파일러에'-Wall'을 넘겨주고 더 이상의 경고가 나올 때까지 코드를 향상시켜야합니다. –