標籤:
不知不覺畢業五年了,以前學的linux基本都忘了,重新溫習起來吧!
下面是自己寫的makefile檔案,供新手和自己回頭時查閱
CC=gccEXE=c.outCCC=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.oCFILE=main.c bubbling_sort.c thread.c share_memory.cctest:$(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 *.omain.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.cshare_memory.o:share_memory.c $(CC) -c -g share_memory.ccctest:test.cc -rm -f cc.out $(CCC) -o $(EEE) test.cc#######################################################create the static libraryslib: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
linux C學習筆記01--makefile