【发布时间】:2013-11-22 01:37:53
【问题描述】:
我的目录中有两个 GNUmakefile,如下所示,
GNUmakefile & GNUmakefile2
如果我必须让“make”命令处理“GNUmakefile2”而不是“GNUmakefile”,请告诉我必须使用的命令。
我使用了以下命令,
make -f GNUmakefile2
但在这种情况下,我收到以下错误,
这是 gnustep-make 2.6.1。输入“make print-gnustep-make-help”寻求帮助。
make[1]: ** 没有规则来制作目标“internal-master-tool-all”。停止。*
make: ** [internal-all] 错误 2*
我认为它正在考虑将 GNUmakefile 作为 makefile(当我使用带有 -f 命令的 make 时),所以它正在检查 GNUmakefile 中的规则。
目前我正在做的是将所需文件(我想要执行的命令)重命名为“GNUmakefile”。而且我在执行“make”命令时没有收到任何错误,但我认为这不是正确的解决方案。
请告诉我在这种情况下我需要使用哪个命令。感谢您的帮助。
在检查了 Beta 的解决方案之后(即,该 makefile 正在第二次调用 Make,并且第二个 Make 进程可能正在读取 GNUmakefile)我所做的就是将现有的“GNUmakefile”重命名为“GNUmakefile3”。
所以目前在我的目录中存在以下makefile:-“GNUmakefile2”和“GNUmakefile3”。
然后我执行了以下命令:- $ make -f GNUmakefile2
我收到以下错误,
这是 gnustep-make 2.6.1。输入“make print-gnustep-make-help”寻求帮助。
make[1]: GNUmakefile: 没有这样的文件或目录
make[1]: * 没有规则来制作目标 `GNUmakefile'。停止。
make: * [internal-all] 错误 2
请告诉我这里有什么问题
【问题讨论】:
-
make -f GNUmakefile2是正确的命令,但该 makefile 正在第二次调用 Make,而第二个 Make 进程可能正在读取 GNUmakefile,因为这是默认设置。你能告诉我们GNUmakefile2吗?为了解决这个问题,我们可能需要对其进行修改。 -
请找到GNUmakefile2的以下内容,包括$(GNUSTEP_MAKEFILES)/common.make LIBRARY_NAME = libHelloWorld libHelloWorld_HEADER_FILES = HelloWorld.h libHelloWorld_HEADER_FILES_INSTALL_DIR = HelloWorld libHelloWorld_OBJC_FILES = HelloWorld.m include $(GNUSTEP_MAKEFILES)/library.make请让我知道这里有什么问题。感谢您的帮助。
-
@Beta:我根据您的输入修改了问题,请检查。
-
这证实了我的理论;其中一个 makefile 包含类似“$(MAKE) -f GNUMakefile internal-master-tool-all”的命令。请告诉我们
common.make和library.make。 -
您好,请在以下链接中找到 common.make:- pastebin.com/gKNXz7LH 请在以下链接中找到 library.make:- pastebin.com/H6YMjkUu 请检查。感谢您的帮助。