这是我的代码结构:
directory
├── common
│ └── fun2.c
├── inc
│ └── fun.h
└── src
├── fun1.c
└── main.c
这是我的makefile:
CC= cc
CFLAGS = -c -Iinc/
SOURCE=fun1.c\
main.c\
common\fun2.c
OBJECTS=$(SOURCE:.c=.o)
EXECUTABLE=hello
all: $(EXECUTABLE)
$(EXECUTABLE):$(OBJECTS)
$(CC) -o $@ $(OBJECTS)
.c.o:
$(CC) $(CFLAGS) $<
clean:
rm -rf *o hello
运行makefile时遇到错误
无法找到从依赖项创建目标common \ fun2.o的规则。 谁能指出这里有什么问题
答案 0 :(得分:0)
您的.c
来源不在directory
,而在directory/src
。因此修复:
SOURCE=src/fun1.c src/main.c common/fun2.c
.c.o:
规则是不必要的,GNU make has a similar built-in rule。或者,修复规则以输出到正确的目录:
.c.o:
$(CC) -o $@ $(CFLAGS) $<
目标all
和clean
应为.PHONY
,即:
.PHONY: all clean
答案 1 :(得分:0)
HashMap<String, String> dur_call = new HashMap<String, String>();
HashMap<String, String> brows_call = new HashMap<String, String>();
HashMap<String, String> brows_call_dst = new HashMap<String, String>();
HashMap<String, String> subs = new HashMap<String, String>();
HashMap<String, String> sub_dur = new HashMap<String, String>();
HashMap<String, String> act = new HashMap<String, String>();
HashMap<String, String> low_bal = new HashMap<String, String>();
HashMap<String, String> deact = new HashMap<String, String>();
HashMap<String, String> re_act = new HashMap<String, String>();
for (String value : datetime) {
dur_call.put(value, "0");
brows_call.put(value, "0");
brows_call_dst.put(value, "0");
subs.put(value, "0");
sub_dur.put(value, "0");
act.put(value, "0");
low_bal.put(value, "0");
deact.put(value, "0");
re_act.put(value, "0");
}