什么“-o”“ - f”“ - c”和“-g”等在make中意味着什么?

时间:2013-05-26 04:26:59

标签: shell makefile g++ command gnu-make

我正在阅读我的C ++程序的makefile文件,并从本文http://myweb.stedwards.edu/laurab/help/makefilehelp.html开始 我的理解是:

-o somefile

指定 somefile 之后的任何文件都将输出到 somefile

-c somefile

从链接/编译中停止 somefile ,除非它已更新并运行

虽然我不确定因为手册:http://linux.die.net/man/1/g++ 简单地说明-c将阻止链接器运行。

-g somefile

吐出调试信息

另外,我从手册中找不到关于-f的信息,在我阅读的所有makefile教程中,他们所做的事情的解释都很少。我猜这可能是基本信息,但我找不到他们在手册中做了什么..

另外,在命令提示符下是否有一个g ++命令允许我查找这些命令的用法?

HELP "-f",但不起作用......

2 个答案:

答案 0 :(得分:1)

-f中的make标志定义如下,

make -f makefile指定不同的makefile。参数makefile是描述文件的路径名,也称为makefile。路径名'-'应表示标准输入。此选项可以有多个实例,它们应按指定的顺序处理。未指定多次指定相同选项参数的效果。

答案 1 :(得分:1)

-o file

这将只指定输出文件名。默认情况下,我认为它是a.out

-c

使用-c调用g++时,它只会编译,而不执行链接操作。 这在大项目中非常有用,因此您可以逐个文件编译并链接。这样,当您只编辑一个文件时,不必重新编译整个项目。

-g N

-g将指定要添加的调试符号的级别。 g++可以在编译时添加许多符号,稍后可以通过gdb等调试器读取。通常,在开发时,使用-g 3进行编译。小心将其移除以释放。它使二进制文件更大更慢。 根据这一点,您将在gdb中获得更多或更少的信息。

-f

g++内,-f本身不是一个标志,它只是一个前缀。但是,在您的示例中,-f不会发送到g++,而是发送到make。如前面的anwser所述,-f make指定要使用的Makefile