Last Update 2021/12/08
-MM
-Mオプションと同様、メインのソースファイルの依存関係をmakeのルール形式で出力
(システムヘッダディレクトリ内のファイルやそれに関連するファイルを含まない)
(システムヘッダディレクトリ内のファイルやそれに関連するファイルを含まない)
テスト概要
標準ヘッダを使用しないソースファイルを処理した場合の出力例
標準ヘッダを使用したソースファイルを処理した場合の出力例
実行環境
GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1
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)
{
}
標準ヘッダを使用しないソースファイルを処理した場合の出力例
sample1.c
#include "sample.h"
int main(void)
{
sampFunc();
return 0;
}
-MMオプションを指定して処理実行
(着色部はカレントディレクトリ内のファイル)
(着色部はカレントディレクトリ内のファイル)
$ gcc -MM sample1.c
sample1.o: sample1.c sample.h func.h
$
標準ヘッダを使用したソースファイルを処理した場合の出力例
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
$