Loose-Info.com
Last Update 2021/12/08
TOP - 各種テスト - gcc - -MM オプション

-MM
-Mオプションと同様、メインのソースファイルの依存関係をmakeのルール形式で出力
(システムヘッダディレクトリ内のファイルやそれに関連するファイルを含まない)

テスト概要

その1
標準ヘッダを使用しないソースファイルを処理した場合の出力例

その2
標準ヘッダを使用したソースファイルを処理した場合の出力例

実行環境

GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1


コード例・出力内容中の表記

・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。

使用ファイル

sample.h
#ifndef SAMPLE_H #define SAMPLE_H #include "func.h" #endif /* SAMPLE_H */

func.h
#ifndef FUNC_H #define FUNC_H void sampFunc(void); #endif /* FUNC_H */

func.c
#include "func.h" void sampFunc(void) { }

その1

標準ヘッダを使用しないソースファイルを処理した場合の出力例

sample1.c
#include "sample.h" int main(void) { sampFunc(); return 0; }

-MMオプションを指定して処理実行
(着色部はカレントディレクトリ内のファイル)
$ gcc -MM sample1.c sample1.o: sample1.c sample.h func.h $

その2

標準ヘッダを使用したソースファイルを処理した場合の出力例

sample2.c
#include <stdio.h> #include "sample.h" int main(void) { sampFunc(); printf("sample2.c\n"); return 0; }

-MMオプションを指定して処理実行
(着色部はカレントディレクトリ内のファイル)
$ gcc -MM sample2.c sample2.o: sample2.c sample.h func.h $