$(DIR)/libmy.a:
5 个评论
这个过程的哪一部分不起作用?你在纠结哪一部分?你的目标目录 DIR 被声明为空,而且你在设置/声明它之前也引用了 $(DIR)
@Corion不知道如何创建一个目录并将文件复制到我从Makefile创建的目录中。
一个 Makefile 主要就是shell命令,所以你用 mkdir 来创建目录,用 cp 来复制文件。也许还可以从以下方面了解Makefiles gnu.org/software/make/manual
考虑编辑你的问题,使其更加清晰。
在你尝试用变量来概括它之前,先得到一个简单的Makefile,它可以正常工作。 只要做 all:\n\tmkdir test\ncp ../lib/libmy.a . 。 当你知道如何调用它并让它做你想做的事时,就可以开始担心如何正确处理依赖关系并使它更通用。
c
linux
bash
makefile
Jonathan
Jonathan
发布于 2018-10-12
1 个回答
Fiddling Bits
Fiddling Bits
发布于 2018-10-12
已采纳
0 人赞同

在我的一个Makefiles中,我有以下规则。

$(BUILD_DIRECTORY)/$(LIBRARY): $(BUILD_DIRECTORY)
    @clang -c $(COMMON_INCLUDE_PATHS) $(LIBRARY_COMPILER_FLAGS) $(LIBRARY_SOURCES)
    @ar rcs $(LIBRARY) *.o
    @mv $(LIBRARY) $(BUILD_DIRECTORY)
    @rm -f *.o
$(BUILD_DIRECTORY):
    @mkdir $(BUILD_DIRECTORY)

$(BUILD_DIRECTORY) is a dependency of $(BUILD_DIRECTORY)/$(LIBRARY).

如果你不想要一个规则来创建构建目录,你可以用下面的方法来创建目录。