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

-MF ファイル名
ソースファイルの依存関係を出力するオプションの出力先をファイル名で指定

テスト概要

その1
-MFオプションを-Mおよび-MMオプションと同時に使用した場合の出力例

その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 */

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

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

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

その1

-MFオプションを-Mおよび-MMオプションと同時に使用した場合の出力例

-MFオプションと-Mオプションを同時に指定して処理実行
$ gcc -M -MF sample_M.txt sample.c $
出力ファイル(sample_M.txt)
sample.o: sample.c /usr/include/stdc-predef.h /usr/include/stdio.h \ /usr/include/bits/libc-header-start.h /usr/include/features.h \ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \ /usr/include/bits/long-double.h /usr/include/gnu/stubs.h \ /usr/include/gnu/stubs-64.h \ /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/stddef.h \ /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/stdarg.h \ /usr/include/bits/types.h /usr/include/bits/typesizes.h \ /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h sample.h \ func.h

-MFオプションと-MMオプションを同時に指定して処理実行
$ gcc -MM -MF sample_MM.txt sample.c $
出力ファイル(sample_MM.txt)
sample.o: sample.c sample.h func.h

その2

ファイル名を「-」と指定した場合の出力例

ファイル名を「-」と指定して処理実行
$ gcc -M -MF - sample.c sample.o: sample.c /usr/include/stdc-predef.h /usr/include/stdio.h \ /usr/include/bits/libc-header-start.h /usr/include/features.h \ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \ /usr/include/bits/long-double.h /usr/include/gnu/stubs.h \ /usr/include/gnu/stubs-64.h \ /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/stddef.h \ /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/stdarg.h \ /usr/include/bits/types.h /usr/include/bits/typesizes.h \ /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h sample.h \ func.h $ ファイル名が「-」の場合の出力先はstdout