ret*_*n 0 1 c makefile gnu-make
我正在尝试遵循本教程:http: //www.cs.colby.edu/maxwell/courses/tutorials/maketutor/
当我在最后一个makefile(#5)时,"make"无法继续(错误提示)No rule to make target "obj/hellomake.o", needed by "hellomake".这段代码试图编译源文件并将libs,srcs,objs放入相应的文件夹中.
IDIR =../include
CC=gcc
CFLAGS=-I$(IDIR)
ODIR=obj
LDIR =../lib
LIBS=-lm
_DEPS = hellomake.h
DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS))
_OBJ = hellomake.o hellofunc.o
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))
$(ODIR)/%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
hellomake: $(OBJ)
gcc -o $@ $^ $(CFLAGS) $(LIBS)
.PHONY: clean
clean:
rm -f $(ODIR)/*.o *~ core $(INCDIR)/*~
Run Code Online (Sandbox Code Playgroud)
我已经盯着它看了一个小时,这不是一段复杂的代码,但我无法解决这个问题.我怀疑问题发生在这里:
$(ODIR)/%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
hellomake: $(OBJ)
gcc -o $@ $^ $(CFLAGS) $(LIBS)
Run Code Online (Sandbox Code Playgroud)
我只是没有看到任何错误.请帮忙.
他们的剧本很好!这样做:
1°)创建目录"include"和"src"
mkdir include; mkdir src
2°)在"src"中创建一个"obj"文件夹
mkdir obj
3°)您的目录树应如下所示:
$:~/parentDir$ tree
.
??? include
? ??? hellomake.h
??? src
??? hellofunc.c
??? hellomake
??? hellomake.c
??? Makefile
??? obj
??? hellofunc.o
??? hellomake.o
4°)现在只需在src目录中使用make命令.:d
| 归档时间: |
|
| 查看次数: |
3503 次 |
| 最近记录: |