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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。