【发布时间】:2014-02-21 16:09:18
【问题描述】:
我对制作文件知之甚少。我是一名学生,这个代码是给我的,用来修改 c 代码本身。我只有基本的make文件知识。
我不断收到此错误:
make[2]: Entering directory `/home/abdelrahman/Documents/Eclipse/storage/test/a1-partial'
make[2]: Leaving directory `/home/abdelrahman/Documents/Eclipse/storage/test/a1-partial'
cd a1-partial && make -s
expr: syntax error
make[2]: Entering directory `/home/abdelrahman/Documents/Eclipse/storage/test/a1-partial'
make[2]: Leaving directory `/home/abdelrahman/Documents/Eclipse/storage/test/a1-partial'
make[2]: *** No rule to make target `-lcheck', needed by `main'. Stop.
make[1]: *** [builda1-partial] Error 2
make: *** [test] Error 2
make[1]: Leaving directory `/home/abdelrahman/Documents/Eclipse/storage/test'
这是我的制作文件:
include ../Makefile.common
# Pick a random port between 5000 and 7000
RANDPORT := $(shell /bin/bash -c "expr \( $$RANDOM \% 2000 \) \+ 5000")
# The default target is to build the test.
build: main
# Build the test.
main: main.c $(SRCDIR)/$(CLIENTLIB) -lcheck -lcrypt
$(CC) $(CFLAGS) -I $(SRCDIR) $^ -o $@
# Run the test.
run: init storage.h main
for conf in `ls *.conf`; do sed -i -e "1,/server_port/s/server_port.*/server_port $(RANDPORT)/" "$$conf"; done
env CK_VERBOSITY=verbose ./main $(RANDPORT)
# Make storage.h available in the current directory.
storage.h:
ln -s $(SRCDIR)/storage.h
# Clean up
clean:
-rm -rf main *.out *.serverout *.log ./storage.h ./$(SERVEREXEC)
.PHONY: run
【问题讨论】: