2009-06-26 5 views
8

나는 몇 가지 큰 C 프로그램을 가지고, 나는 내가 헤더 파일이 실제로 포함 된이 프로그램을 컴파일하고있을 때 알고 싶습니다 그리고 모양을하지만 컴파일하는 방법이 있고 동시에 어떤 헤더 파일이 포함되어 있는지 보여주는 것도 알고 있습니까?GCC에서 전처리 된 코드를 보지 않고 어떤 헤더가 포함되어 있는지 어떻게 알 수 있습니까?</p> <p>가장 간단한 솔루션은 사전 처리 코드를 인쇄하는 것입니다 ...

답변

14

-M option을 사용하여 종속성을 출력하십시오. 컴파일을 생성하려면 -MD을 사용하십시오. -MF를 사용하여 파일로 경로 재 지정하십시오.

또한 -MM을 사용하면 종속성 목록에서 시스템 파일을 무시할 수 있습니다.

gcc ... -M -MF <output_file>  # generate dependencies 
gcc ... -MD -MF <output_file>  # compile and generate dependencies 
+0

를 인쇄하지 않고 수동에서 : 드라이버에 -M 전달 암시 -w와 경고를 -E를 의미하고, 억제한다. 프로그램이 실제로 컴파일되지 않습니다. – LB40

+0

예. * 및 *를 사용하여 종속성을 동시에 생성하려면 -MD를 사용해야합니다. – philant

+0

괜찮아 ... 고마워 ...;) – LB40

0

gcc 상세 표시를 늘린 다음 자체 필터 프로그램을 통해 실행하십시오?

+1

더 GCC -v이 정보 – LB40

5

-MD 옵션을 사용할 수 있습니다. 자세한 내용은 man gcc을 참조하십시오.

0

gcc -M 또는 gcc -MM을 사용하십시오. 원하는 경우 sed로 출력을 조정하십시오. GNU make를 사용한다면 (그리고해야한다) 이것을 하나의 깔끔한 명령으로 마무리 할 수있다.