指定指向“的路径”;makefile";使用;制造;命令

指定指向“的路径”;makefile";使用;制造;命令,makefile,Makefile,我想从文件系统中的另一个位置运行makefile。如何传递要生成的makefile的位置 如果我站在“/”中,并且我想运行一个在“/dir/dir2/dir3/makefile”中抵抗的makefile,那么如何将其添加到make命令中 我试过: make --file=dir/dir2/dir3/makefile 但它不起作用。生成文件中的所有相对路径都将相对于当前目录,而不是生成文件的目录 假设您了解这一点,并且您想做的事情仍然有效,那么您希望使用-f标志来指定要使用的makefile。(

我想从文件系统中的另一个位置运行makefile。如何传递要生成的makefile的位置

如果我站在“/”中,并且我想运行一个在“/dir/dir2/dir3/makefile”中抵抗的makefile,那么如何将其添加到make命令中

我试过:

make --file=dir/dir2/dir3/makefile

但它不起作用。

生成文件中的所有相对路径都将相对于当前目录,而不是生成文件的目录

假设您了解这一点,并且您想做的事情仍然有效,那么您希望使用
-f
标志来指定要使用的makefile。(位于手册页、手册和
--help
输出中。)


相反,如果您的意思是希望
cd
到其他地方并运行make,那么您可能正在查找
(cd/some/path&&make)

您可以使用
-C
标志来指定make文件的路径。这样,您就可以从不同的目录执行它。
-f
标志有不同的用途。使用该标志,您可以执行一个名称不同于
makefile

的makefile,也许cd建议最合适。我想,区别在于我是否希望编译后的文件与make文件位于同一文件夹中(这将是cd示例),或者我是否希望文件位于我所在的同一目录中。我说的对吗?不止这些。如果您在makefile中有一条规则,上面写着
foo:foo.c
,它将在当前目录中创建一个文件
foo
,但也会在当前目录中查找
foo.c
,它不会出现。我一直在摆弄我的makefile,试图让
make
识别
CFLAGS
我在其中指明的论点。但这些参数似乎没有传递给
make
。因此,我删除了本地
Makefile
并再次运行
make
,它继续运行相同的命令(
cc-oex4.c-oex4
)。我试图通过
CFLAGS
通过
-g-Wall
。在我的操作系统周围有一些master
Makefile
吗?!不,是内置的规则。看,这可能是重复的,我用cmake生成了我的Makefile,然后想从另一个目录构建