-M

等效编译指示

无。

用途

生成 make 工具用于每个源文件的依赖关系文件。

依赖关系输出文件以 .u 后缀命名。

语法

读取语法图跳过可视语法图-M

缺省值

不适用。

用途

对于在命令行上指定的每个源文件 带有 .c, .C , .cpp , 或 .i 后缀 ,将生成与对象文件同名但具有 . u 后缀的依赖关系输出文件。 不会为任何其他类型的输入文件创建依赖关系输出文件。 如果使用 -o 选项重命名对象文件,那么依赖关系输出文件的名称将基于 -o 选项中指定的名称。 有关更多信息,请参阅"示例"部分。

依赖关系输出文件为每个源文件的依赖关系指定一个单独的规则。 这些选项生成的依赖关系输出文件不是 make 描述文件;必须先链接这些文件,然后才能与 make 命令配合使用。 有关此命令的更多信息,请参阅操作系统文档。

输出文件包含输入文件的一行和每个包含文件的条目。 它的一般格式为:
file_name.o:include_file_name
file_name.o:file_name.suffix

您还可以将 -M 与以下选项配合使用:

-MF 文件路径
设置依赖关系输出文件的名称,其中 file_path 是依赖关系输出文件的完整路径或部分路径或文件名。 有关更多信息,请参阅 -MF

根据 #include 预处理器伪指令的搜索顺序规则列出包含文件,如 包含文件的目录搜索顺序中所述。 如果找不到包含文件,那么不会将其添加到 .u 文件。

无 include 语句的文件生成的依赖关系输出文件将包含一行,仅列出输出文件名。

预定义的宏

无。

示例

示例 1: 要编译 mysource.c 并创建名为 mysource.u的依赖关系输出文件,请输入:
ibm-clang -c -M mysource.c
示例 2: 要编译 foo_src.c 并创建名为 mysource.u的依赖关系输出文件,请输入:
ibm-clang -c  foo_src.c -MF mysource.u 
示例 3: 要编译 foo_src.c 并在 deps/ 目录中创建名为 mysource.u 的依赖关系输出文件,请输入:
ibm-clang -c -M foo_src.c -MF deps/mysource.u
示例 4: 要编译 foo_src.c 并创建名为 foo_obj.o 的对象文件和名为 foo_obj.u的依赖关系输出文件,请输入:
ibm-clang -c -M foo_src.c -o foo_obj.o
示例 5: 要编译 foo_src.c 并创建名为 foo_obj.o 的对象文件和名为 mysource.u的依赖关系输出文件,请输入:
ibm-clang -c -M foo_src.c -o foo_obj.o -MF mysource.u
示例 6: 要编译 foo_src1.cfoo_src2.c 以创建两个分别名为 foo_src1.ufoo_src2.u,在 /tmp/ 目录中的依赖关系输出文件,请输入:
ibm-clang -c -M foo_src1.c foo_src2.c -MF /tmp/ 

相关信息