cor*_*zza 13 makefile compilation file
在我的项目的目录,我有一些子目录:code/,export/,docs/和object/.什么make是简单地编译代码目录中的所有文件,并将.o文件放入对象目录中.
问题是,我告诉git忽略所有.o文件,因为我不希望它们被上传,所以它也不跟踪对象目录.我真的很好,我不想object/上传到我的GitHub帐户,但是使用当前的解决方案(这是object/dir中的一个简单的空文本文件),该目录确实上传并且需要存在在构建之前(makefile只是假定它在那里).
这似乎不是最好的解决方案,所以有没有办法在make文件中构建之前检查目录是否不存在,如果是这样的话就创建它?这将允许在调用make命令时不存在对象目录,并在之后创建.
Bet*_*eta 16
只要有一个目标:
object/%.o: code/%.cc object
compile $< somehow...
object:
mkdir $@
Run Code Online (Sandbox Code Playgroud)
如果你想要防止一个名为"对象"的文件的可能性,你必须要小心一点,但这是基本的想法.
woe*_*aul 16
唯一正确的方法是使用仅订购先决条件,请参阅:https://www.gnu.org/software/make/manual/html_node/Prerequisite-Types.html.注意| 在片段中.
如果您不使用仅订购先决条件,则该目录中的每个修改(例如,复制或创建文件)都将触发再次依赖于目录创建目标的规则!
object/%.o: code/%.cc | object
compile $< somehow...
object:
mkdir -p $@
Run Code Online (Sandbox Code Playgroud)
Mik*_*e F 13
在目标中插入mkdir命令.
object/%.o : code/%.cc
@mkdir -p object
compile $< somehow...
Run Code Online (Sandbox Code Playgroud)
如果目录已存在,则"-p"不会导致错误.
| 归档时间: |
|
| 查看次数: |
16495 次 |
| 最近记录: |