在我的项目目录中,我有一些子目录:code /,export /,docs /和object /.所做的是简单地从代码目录中编译所有文件,并将.o文件放入对象目录中.
问题是,我告诉git忽略所有.o文件,因为我不想上传它们,所以它也不跟踪对象目录.我实际上是这样的,我不想让对象/上传到我的GitHub帐户,但是使用当前的解决方案(这是对象/目录中的一个简单的空文本文件),该目录将被上传,需要在构建之前存在(makefile只是假定它在那里).
这似乎不是最好的解决方案,所以有一种方法可以检查一个目录在make文件中的构建之前是不存在的,如果是这样,那么创建一个目录?这将允许在调用make命令并在之后创建时,对象目录不存在.
解决方法
只要有一个目标:
object/%.o: code/%.cc object compile $< somehow... object: mkdir $@
如果你想防范名为“对象”的文件的可能性,那么你必须更加小心,但这是基本的想法.