橦言无忌

一个不想改变世界的程序媛

makefile example--des & md5 & base64

前言

makefile编译代码,有其他需要链接的库,包含mysql,base64等等三方服务,详情看代码吧~

写这个大概在五年之前了哦~

编译des md5 base64密码服务

  • all 规则示例
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    INCL=-I/usr/local/mysql/include -I$(HOME)/incl
    LIB=-L/usr/local/mysql/lib -lmysqlclient -lmysqld -lmysqlservices
    BINDIR=$(HOME)/bin
    LIBDIR=$(HOME)/lib

    .SUFFIXES: .cpp .c

    .cpp.o:
    g++ ${INCL} -c $<
    .c.o:
    gcc $(INCL) -c $<

    #[NOTE]
    all: clean des md5 base64

    des:des.o main_des.o
    gcc -o $@ $? $(LIB)
    mv $@ $(BINDIR)

    md5:md5.o main_md5.o
    gcc -o $@ $? $(LIB)
    mv $@ $(BINDIR)

    base64test:base64.o main_base64.o
    gcc -o $@ $? $(LIB)
    mv $@ $(BINDIR)

    rsa:rsa.o main_rsa.o
    gcc -o $@ $? $(LIB)
    mv $@ $(BINDIR)

    libjiami.a:des.o md5.o base64.o
    ar -r $@ $?
    mv $@ $(LIBDIR)

    libdestest:main_des.o
    gcc -o $@ $? $(LIB) -L$(HOME)/lib -ljiami
    mv $@ $(BINDIR)

    libtest.so:des.c md5.c base64.c
    gcc -o $@ -fPIC -shared $?
    mv $@ $(LIBDIR)

    libmd5test:main_md5.o
    gcc -o $@ $? $(LIB) -L$(HOME)/lib -ltest
    mv $@ $(BINDIR)

    libbanktest.a:banktest.o banksql.o
    ar -r $@ $?
    mv $@ $(LIBDIR)

    banktest:banktest.o banksql.o
    gcc -o $@ $? $(LIB) -L$(HOME)/lib -ltest
    mv $@ $(BINDIR)

    clean:
    rm -f *.o
// 代码折叠