- 论坛徽章:
- 0
|
....
不要再劝咱用工具生成make了.....呵呵.. 一个简单的
有个C文件,文件名为 app1Main.c, 内容为
- #include <stdio.h>
- int main()
- {
- return 0;
- }
复制代码 放在目录 ./makefile2/APP1/Source/ 下
准备把它生成的目标文件放在 ./makefile2/Objs/ 下.
makefile 写成如下形式:
- RSC1_PATH = ./makefile2/APP1/Source/
- OBJ_PATH = ./makefile2/Objs/
- vpath
- vpath %.c $(RSC1_PATH)
- vpath %.o $(OBJ_PATH)
- .PHONY : update
- update : $(OBJ_PATH)app1Main.o
- @echo "target"
复制代码 经验证,这是不行的.. 提示 no rule to make target makefile2/objs/app1Main.o...
但如果在 ./makefile2/Objs/ 下面放个 app1Main.c 文件,就编译出了目标文件.
所以, 不懂..如果想要用隐含规则..而且这个目标还是带路径的... make 是怎么去搜索文件的? 难道不是先在make目录下查找,查找不到再到我设置的vpath中查找么?
再看下面一个..
- $(targetpath)target:
- gcc -o $@ -c $<
复制代码 在这种情况下, 规则给出了目标和生成目标的命令...make还会去使用隐含规则么? 如果使用了, 为了每次编译都提示 gcc -c 后面no input 呢...
两天了...都要疯了....求大家能指点一下...实在是进行不下去了... |
|