在使用gnu make

时间:2015-06-19 08:25:04

标签: makefile gnu-make gnu

我正在尝试将新模块移植到我的项目中。该模块有自己的make文件。我没有make构建系统的背景或经验,所以我决定使用以下命令:

make -f Makefile -f ../newmodule/tbt/makefile

但我收到以下错误:

  

../ newmodule / tbt / makefile:14:make / macros.mk:没有这样的文件或   目录       ../newmodule/tbt/makefile:66: ***目标文件`all'同时具有:和:: entries。停止。

如果我错了,请纠正我;我的理解是我的第一个错误是因为我从我的主项目发出了make,我需要以某种方式配置它以查看../newmodule/tbt/make的目录以查找macros.mk。有人能提出解决这个问题的有效方法吗?包含../newmodule/tbt/make文件夹内容的最佳方法是什么?

我的第二个错误似乎正是让人抱怨的原因,即在目标"all"的两个make文件中有:和::。我不能非常密切地关注第二个make文件,但是有这个目标的行没有多少。我正在考虑将其更改为My_all,并将此新变量配置为新模块的默认目标。我甚至不确定我的术语是否正确。 “all”被称为make的默认目标?我已经查看了大部分的make文件,但现在是凌晨5点,我不记得有些事了。

2 个答案:

答案 0 :(得分:0)

在OpenWrt下编译某些软件包时遇到了此错误。问题出在Makefile的VERSION声明中。

因此,请检查是否在某个变量之后声明了带有不必要空格或注释的任何内容。

在变量应删除后删除注释或空格。

答案 1 :(得分:-1)

尝试运行两个单独的make -f myMakefile命令,每个模块目录中有一个命令,以便相对路径正常运行,因为您在执行make时已经发现当前目录可能是问题的一部分。