0
彙編文件我已經寫了一個makefile文件和所有的圖書館,因爲我需要,任何人可以用正確的表格和結構正確纂它:作出的許多文件
# Macros
CC = gcc
COMP_FLAG = -std=c99 -Wall -pedantic-errors -Werror -DNDEBUG
LIB_FLAG = -L. -lmtm
# Main target
tests: memcache_test my_set_test cache_test user_test
# Targets make <file>
user_test: user_test.o user.o
$(CC) user_test.o user.o $(LIB_FLAG) -o [email protected]
memcache_test: memcache_test.o memcache.o user.o cache.o
$(CC) memcache_test.o memcache.o user.o cache.o $(LIB_FLAG) -o [email protected]
cache_test: cache_test.o cache.o
$(CC) cache_test.o cache.o $(LIB_FLAG) -o [email protected]
my_set_test: my_set_test.o my_set.o
$(CC) my_set_test.o my_set.o -o [email protected]
# Targets make <file>_test.o
user_test.o: tests/user_test.c user.h tests/test_utilities.h map.h set.h
$(CC) -c $(COMP_FLAG) $(LIB_FLAG) tests/$*.c
memcache_test.o: tests/memcache_test.c tests/test_utilities.h memcache.h map.h cache.h set.h list.h
$(CC) -c $(COMP_FLAG) $(LIB_FLAG) tests/$*.c
cache_test.o: tests/cache_test.c cache.h tests/test_utilities.h set.h
$(CC) -c $(COMP_FLAG) $(LIB_FLAG) tests/$*.c
my_set_test.o: my_set/my_set_test.c tests/test_utilities.h my_set/my_set.h
$(CC) -c $(COMP_FLAG) $(LIB_FLAG) my_set/$*.c
# Targets make <file>.o
memcache.o: memcache.c memcache.h map.h cache.h list.h set.h user.h
$(CC) -c $(COMP_FLAG) $(LIB_FLAG) $*.c
user.o: user.c user.h set.h map.h
$(CC) -c $(COMP_FLAG) $(LIB_FLAG) $*.c
cache.o: cache.c cache.h set.h
$(CC) -c $(COMP_FLAG) $(LIB_FLAG) $*.c
my_set.o: my_set/my_set.c my_set/my_set.h
$(CC) -c $(COMP_FLAG) my_set/$*.c
# Target runs all test files
run: run_my_set_test run_cache_test run_memcache_test run_user_test
run_clean: clean run
run_my_set_test: my_set_test
./my_set_test
run_cache_test: cache_test
./cache_test
run_memcache_test: memcache_test
./memcache_test
run_user_test: user_test
./user_test
# Target remove all <*_test> and <*.o> files
clean: clean_o clean_test
clean_test:
rm -f *_test
clean_o:
rm -f *.o
當我嘗試運行它,它說:
***** missing separator. Stop.
我不知道如何以及在哪裏把分隔符。
'make'將需要* action *部分(或其他名稱)的製表符。 – trojanfoe
這是什麼意思?據我所知,我需要正確列表,但我不知道如何去做。這就是爲什麼我要求有人正確寫下來。我錯了嗎? –
嗯,我認爲如果你瞭解格式應該是什麼,而不是來這裏找人爲你做你的工作會更好。網絡上應該有許多關於Makefiles的文章。 – trojanfoe