linux C学习笔记01--makefile
不知不觉毕业五年了,以前学的linux基本都忘了,重新温习起来吧!
下面是自己写的makefile文件,供新手和自己回头时查阅
CC=gcc EXE=c.out CCC=g++ EEE=cc.out INC=/home/malth/project/include/ LIB=/home/malth/project/lib/ #添加文件搜索路经 vpath=/home/malth/project/lib #vpath %.h ~/project/include OUT=main.o bubbling_sort.o thread.o share_memory.o CFILE=main.c bubbling_sort.c thread.c share_memory.c ctest:$(OUT) @echo compiling start...... #命令前加 - 减号可以忽略命令执行错误的信息 #"@"符号可以隐藏命令,命令会执行但是不会显示命令本身 #调试发现用*.o文件做gcc -o 连接生成的可执行文件不能进行GDB调试顾增加了*.c文件直接生成供选择 # $(CC) $(OUT) -static $(LIB)slib.a -lpthread -o $(EXE) $(CC) $(CFILE) -I$(INC) -static $(LIB)slib.a -lpthread -g -o $(EXE) @echo compile successed! # @-rm -f *.o main.o:main.c $(CC) -I$(INC) -c -g main.c common.o:common.c $(CC) -c -g common.c thread.o:thread.c $(CC) -c -g thread.c bubbling_sort.o:bubbling_sort.c $(CC) -c -g bubbling_sort.c share_memory.o:share_memory.c $(CC) -c -g share_memory.c cctest:test.cc -rm -f cc.out $(CCC) -o $(EEE) test.cc ###################################################### #create the static library slib:static_lib.o ar -rcs slib.a static_lib.o mv -f slib.a $(LIB) static_lib.o:static_lib.c $(CC) -c static_lib.c ###################################################### clean: -rm -f $(EXE) $(EEE) *.o ls result= result:=$(words hello world) all: @echo -n "result is : " @echo $(result) .PHONY:all