2009-07-24 7 views
3

가능한 중복 :
C/C++: Detecting superfluous #includes?
How should I detect unnecessary #include files in a large C++ project?자동으로 제거 불필요한 사용법 #include 문

안녕,

I했습니다 C의 빌드 시간을 단축하는 방법에 대한 많은 토론 다음이었다/C++ 프로젝트. 일반적으로 좋은 최적화는 forward 선언을 사용하여 #include 문을 없애는 것입니다. 이제, 궁금 해서요 :

파일 사이에 #include 종속성 트리를 계산할 수있는 도구가 있습니까 (Linux에서 mkdep가이 작업을 수행 할 수 있음을 알고 있습니다). '헤더 파일 제거/재 컴파일 '주기? 도구가 종속성 트리에서 노드를 제거하려고 시도 할 수 있다면 (예 : 파일에서 #include 구문을 제거한 다음) 프로젝트를 다시 작성하여 여전히 작동하는지 확인할 수 있다면 좋을 것입니다.

매우 영리해야 할 필요는 없습니다. (예를 들어, 값 대신 포인터를 사용하여 헤더 파일을 불필요하게 만드는 코드를 리팩터링하는 등) 많은 불필요한 #include 문이 필요합니다. 이것은 일반적으로 코드를 리팩토링하고 주변을 움직이면 발생하지만 #include를 빼는 것을 잊어 버립니다.

이와 같은 도구가 있는지 여부를 아는 사람이 있습니까?

+2

중복 가능 : http://stackoverflow.com/questions/614794/cc-detecting-superfluous-includes 및 http://stackoverflow.com/questions/74326/how-should-i-detect-unnecessary-include- large-c-projects 프로젝트 – dfa

+0

다중 구성 (플랫폼 또는 빌드 옵션)을 빌드해야하는 경우 다른 빌드를 손상시키지 않으므로 문제가 더 복잡해집니다. 또 다른 한가지는 의존성을 자동으로 최소화하려는 목표는 각 include 파일을 자급 자족하게 유지하는 또 다른 목표를 방해 할 수 있다는 것입니다. – AProgrammer

+0

빌드 상자가 8Gb + RAM의 x86_64이고, 가장 큰 L1/L2 캐시를 가진 빠른 멀티 코어 CPU는 빌드 시간 최적화 문제에 대한 무차별 대입이지만 빠르고 저렴합니다. 상당한 코드베이스로 개인적인 경험을 통해 알 수 있습니다 :-) 게다가, 그것은 많은 시간을 필요로하는 첫 번째 빌드입니다 - 점진적 변경을 수행하는 경우 매우 적은 모듈 만 다시 컴파일해야하므로 문제를 살펴볼 가치가 있습니다 또한 다른 각도에서. –

답변

1

여기에도 이와 비슷한 질문이 많이있었습니다. 지금까지, 아무도 의존성 그래프를 나열하고 hilight multiple includes 등 (좋아하는 것은 doxygen이 될 것 같습니다) 파일 자체에 대한 편집을 수행하는 정말 좋은 도구를 제안하지 않았습니다. 그래서 나는 anser가 "No"가 될 것이라고 추측 할 것입니다 - 그러나 나는 틀렸다고 기쁘게 생각합니다!

관련 문제