我的项目文件夹看起来像这样
Makefile
/src
/flash
build.xml
/blabla
...
我写了一个像这样的Makefile
flash: src/flash/bin-debug/App.swf
src/flash/bin-debug/App.swf:
cd src/flash
ant
当我执行make flash
时,收到以下消息:
cd src/flash/
ant
Buildfile: build.xml does not exist!
Build failed
make: *** [src/flash/bin-debug/App.swf] Error 1
如何在ant
src/flash
答案 0 :(得分:4)
make
creates a new subshell for each line。尝试:
src/flash/bin-debug/App.swf:
cd src/flash; ant
否则这两个命令在两个单独的子shell中执行。当第一个子shell终止时,cd
的效果会丢失。
答案 1 :(得分:1)
正如aix所解释的那样,你必须在一行上写cd src/flash; ant
。
由于您尚未为App.swf目标指定任何依赖项,因此make在更改时无法重建。你可以添加它们。问题是你不想复制你正在用ant做的工作。
使用GNU Make解决方案是使用phony target。它是一种目标类型,不会被解释为文件名,并且每次构建目标时都会执行其命令。
这看起来像这样:
.PHONY: flash
flash:
cd src/flash; ant
重复输入make flash
每次都会调用ant。