2010-11-19 1 views
6

방금 ​​문제를 해결하기위한 아이디어를 생각해 냈습니다. 너무 진부한 미안 해요.C, C++의 암시 적 포함을 해결하기위한 아이디어

그래서 내가 검토하고있는 커다란 C++ 프로젝트에는 다른 포함의 기호에 의존하지만 필수 포함을 포함하지 않는 많은 포함이 포함되어 있습니다. 빌드 프로 시저가 약간 변경되면 "누락 된 심볼"오류가 발생합니다.

그래서 모든 내용을 한꺼번에 확인하려면 모든 * .h를 검색하여이 .h 파일과 함께 #include -statement 만 포함 된 cpp 파일을 생성하고 컴파일하십시오. 그것. 마지막에는 "좋은"및 "나쁜"포함 파일 목록을 얻습니다. 차가운가요? :-) 아니면 쉬운 해결책이 있습니까?

+2

암시 적 경고 경고를 사용하고 경고를 컴파일러 옵션의 오류로 처리하는 경우에도 이러한 오류를 포착하지 않겠습니까? – tdammers

+2

-1 : 물론, 멋진 아이디어이지만, 이것은 진짜 질문이 아닙니다. –

+1

@Andres : Mr. Policeman, 이것은 질문이며, 더 좋은 방법이 있는지 묻습니다. –

답변

12

모든 .cpp 파일에 먼저 자체 헤더 파일이 포함 된 다음 다른 헤더가 포함되어 있으면 외부 도구를 사용하지 않고이 검사를 받게됩니다.

선호 순서는 숨겨진 의존성을 감소 :

이 같은 이유로 Googles C++ Style Guide의 일부 사실이다. 우리는 모든 헤더 파일을 자체적으로 컴파일 할 수 있기를 바랍니다. 가장 쉬운 방법은 을 모두 첫 번째 .h 파일 인 #cc에 포함 시키도록하는 것입니다.

해당 .cpp 파일이없는 헤더 파일이있는 경우 특수한 작업을 수행해야합니다.

+0

+1 감사합니다. 나는 항상이 접근법을 사용하지만 그 이유를 기억하고 주장 할 수는 없다. 이제 알았어! Google 스타일 가이드를 가리켜 주셔서 감사합니다. –

+1

불행히도이 스타일로 미리 컴파일 된 헤더를 사용할 수 없습니다 : \ – Inverse

+0

@Inverse : interesting! 어쨌든, 어쨌든 사용하지 않았습니다 .-) ( –

1

몇 년이 걸렸지 만 린트가 당신을 위해이 일을한다고 믿습니다. Lint는 앞으로 선언문이 포함될 때 파일이 언제 포함되는지 알려줍니다.

+0

감사합니다.이 고객 코드에서는 많은 린트 프라그 마를 보았습니다.이 린트 경고를 어떻게 처리해야하는지 물어봐야 할 것입니다.) –

+1

나는 린트에서 '웃음 ​​소리'로 모든 경고를 사용하는 것을 기억합니다. 120 만 건의 오류가 발생하여 주말 대부분을 마칠 수있었습니다. 모든 경고를 끄고 서서히 켜고 필요한 것을 수정 한 후 다음 단계로 진행하는 것이 좋습니다. 나는 단지 15 정도에 관심이 있었다. –