Linux c语言 make文件模板

1. 生成 静态库,动态库模板

libmakTemple.mak:

LIB=pubfun#源文件

LIBA=lib$(LIB).a#静态库名
CC=cc
AR=ar cr#静态库编译命令
SHARE=-fPIC -shared#动态库编译命令
LIBSO=lib$(LIB).so#动态库名
INCLUDE=-I$(APPHOME)/programs/c_files/include#依赖头文件路径
WARN=-g -Wall
MV=mv
RM=rm

LIB:
        @echo "/********************BEGIN TO MAKE********************/"
        @echo "begin make $@.mak"

        $(CC) -c $(INCLUDE) $(LIB).c $(WARN)#生成.o
        $(AR)  $(LIBA) $(LIB).o#生成.a
        $(CC) $(LIB).c $(SHARE) -o $(LIBSO) $(INCLUDE)#生成.so
        $(MV) $(LIBA) $(APPHOME)/lib
        $(MV) $(LIBSO) $(APPHOME)/lib
        $(RM) $(LIB).o

        @echo "/********************END TO MAKE********************/"

2.普通mak文件模板:

makeFileTempleLib.mak

TARGET=test138
CC=gcc
BIN=$(APPHOME)/bin
COMINCLUDE=-I./include/
WARN=-g -Wall
THREAD=-lpthread
LIB=-L$(APPHOME)/lib -lpubfun


$(TARGET):DEPENDANCES

        @echo "/********************BEGIN TO MAKE********************/"


        @echo "begin make $@.mak"

        $(CC) -o $(TARGET) $(TARGET).c $(COMINCLUDE)  $(WARN) $(THREAD) $(LIB)
        mv $(TARGET) $(BIN)

        @echo "/********************END TO MAKE********************/"

DEPENDANCES:
        cd $(APPHOME)/programs/c_files/pubFun &&make

makeFileTempleFun.mak

TARGET=pthread_test
CC=gcc
BIN=$(APPHOME)/bin
COMINCLUDE=-I./include/
PUBFUN=$(PUB_FUN)/md5.c $(PUB_FUN)/pubfun.c
WARN=-g -Wall
THREAD=-lpthread

$(TARGET):

        @echo "/********************BEGIN TO MAKE********************/"
        @echo "begin make $@.mak"

        $(CC) -o $(TARGET) $(COMINCLUDE) $(PUBFUN) $(WARN) $(THREAD) $(TARGET).c
        mv $(TARGET) $(BIN)

        @echo "/********************END TO MAKE********************/"

3.oracle编译make模板:

oracleMakefileTemplateFun.mak

#目标文件
TARGET=${TARGET}#填目标文件
ORAFUN=$(ORACLE_FUN)/oracle_fun
PUBFUN=$(PUB_FUN)/pubfun
TMPPC=$(ORACLE_FUN)/tbl_qual_system_record
COMINCLUDE=-I./include/
WARN=-g -Wall

#ORACLE工具
ORA_INC=-I$(ORACLE_HOME)/precomp/public
ORA_LIBDIR=-L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib -L$(ORACLE_HOME)/precomp/lib -L$(ORACLE_HOME)/sqlplus/lib -L$(ORACLE_HOME)/otrace/lib
ORA_LIBS= -lclntsh
CFLAGS= $(ORA_INC) -I.
PROC=proc

#C编译
CC=gcc

#编译程序
$(TARGET):

        @echo "/********************BEGIN TO MAKE********************/"
        @echo "begin make $@.mak"

ifeq ($(DBTYPE),MYSQL)

        @echo "$(DBTYPE) is not define DB,exit"

else ifeq ($(DBTYPE),ORACLE)
        @echo "DATATYPE:$(DBTYPE)"

        $(PROC) $(ORAFUN).pc
        $(PROC) $(TMPPC).pc
        $(CC) $(CFLAGS) -o $(TARGET) $(TARGET).c $(ORAFUN).c $(PUBFUN).c $(TMPPC).c $(COMINCLUDE) $(ORA_LIBDIR) $(WARN) $(ORA_LIBS)  -lm
        mv $(TARGET) $(APPHOME)/bin
        rm $(ORAFUN).c $(ORAFUN).lis $(TMPPC).c $(TMPPC).lis

endif

        @echo "/********************END TO MAKE********************/"

oracleMakefileTemplateLib.mak

#目标文件
TARGET=oracle_test
ORAFUN=$(APPHOME)/programs/pc_files/oracle_fun/oracle_fun
EMP=$(APPHOME)/programs/pc_files/oracle_fun/tbl_qual_emp_no
PLAN=$(APPHOME)/programs/pc_files/oracle_fun/tbl_qual_task_plan

#ORACLE工具
ORA_INC=-I$(ORACLE_HOME)/precomp/public
ORA_LIBDIR=-L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib -L$(ORACLE_HOME)/precomp/lib -L$(ORACLE_HOME)/sqlplus/lib -L$(ORACLE_HOME)/otrace/lib
ORA_LIBS= -lclntsh
CFLAGS= $(ORA_INC) -I.
PROC=proc

#C编译
CC=gcc
COMINCLUDE=-I./include/
LIB=-L$(APPHOME)/lib -lpubfun
WARN=-g -Wall


#编译程序
$(TARGET):DEPENDANCES

        @echo "/********************BEGIN TO MAKE********************/"
        @echo "begin make $@.mak"

ifeq ($(DBTYPE),MYSQL)

        @echo "$(DBTYPE) is not define DB,exit"

else

        @echo "DATATYPE:$(DBTYPE)"

        $(PROC) $(ORAFUN).pc
        $(PROC) $(EMP).pc
        $(PROC) $(PLAN).pc
        $(CC) $(CFLAGS) -o $(TARGET) $(TARGET).c $(LIB) $(WARN) $(ORAFUN).c $(COMINCLUDE) $(PLAN).c $(EMP).c  $(ORA_LIBDIR) $(ORA_LIBS) -lm
        mv $(TARGET) $(APPHOME)/bin
        rm $(ORAFUN).c $(ORAFUN).lis $(EMP).c $(EMP).lis  $(PLAN).lis $(PLAN).c

endif

        @echo "/********************END TO MAKE********************/"

DEPENDANCES:
        cd $(APPHOME)/programs/c_files/pubFun &&make

4:mysql编译模板:

c语言:

mysqlMakeFileTemple.mak

TARGET=mysql_test
APPHOME=${HOME}/qualSystem
PUBFUN=$(QUAL_HOME)/programs/c_files/pubFun/pubfun.c
MYSQL_FUN=$(PUB_FUN)/mysql_api
TMP_FUN=${APPHOME}/programs/c_files/mysql/tbl_qual_login_record.c \
        ${APPHOME}/programs/c_files/mysql/tbl_qual_oracle_admin.c
CC=gcc
INCLUDE=-I$(APPHOME)/programs/c_files/include
WARN = -g -Wall


ifeq ($(DBTYPE),MYSQL)#mysql 数据库编译


        ifeq (${HOSTNAME},qualsalasMac)

                MYSQL_LIB=-I${MYSQL_HOME}/include
                MYSQL_LN=-L${MYSQL_HOME}/lib -lmysqlclient
        else
                MYSQL_LIB=-I/usr/include/mysql
                MYSQL_LN=-L/usr/lib64/mysql -lmysqlclient
        endif


$(TARGET):

        @echo "/********************BEGIN TO MAKE********************/"
        @echo "begin make $@.mak"
        @echo "DATATYPE:$(DBTYPE)"

        $(CC) $(MYSQL_LIB) $(TARGET).c $(MYSQL_FUN).c $(TMP_FUN) $(PUBFUN) $(INCLUDE)  $(MYSQL_LN) $(WARN) -o  $(TARGET)
        mv $(TARGET) $(APPHOME)/bin


else


$(TARGET):

        @echo "/********************BEGIN TO MAKE********************/"
        @echo "begin make $@.mak"
        @echo "$(DBTYPE) is not define DB,exit"


endif

c++:

makeTmpCplusMysqlFun.mak

TARGET=mysql_connect
TARGET_SOURCE=${TARGET}.cpp
TARGET_BIN=${TARGET}_cpp
APPHOME=${HOME}/qualSystem
CPLUS=g++
INCLUDE=-I${APPHOME}/programs/c++_files/include/
LIB=-L${APPHOME}/lib/
O=-o
MV=mv
BIN=${APPHOME}/bin
#SPDLOG=-lspdlog
SPD_INCLUDE=-I${APPHOME}/programs/c++_files/spdlog/include
SPD_FUN=${APPHOME}/programs/c++_files/pubFun/spd_log.cpp
PUB_FUN=${APPHOME}/programs/c++_files/pubFun/pubfun.cpp
MYSQL_FUN=${APPHOME}/programs/c++_files/pubFun/mysql_api.cpp
C11='-std=c++11'
PTHREAD=-lpthread
#WARN=-g -Wall

endif

${TARGET}:
        ${CPLUS} ${O} ${TARGET_BIN} ${TARGET_SOURCE} ${INCLUDE} ${LIB}  ${SPD_FUN} ${PUB_FUN} ${C11} ${SPD_INCLUDE} $(MYSQL_LIB) $(MYSQL_INC) ${MYSQL_FUN} ${PTHREAD} ${WARN}
        ${MV} ${TARGET_BIN} ${BIN}

makeTmpCplusMysqlLib.mak

TARGET=test13
TARGET_SOURCE=${TARGET}.cpp
TARGET_BIN=${TARGET}_cpp
APPHOME=${HOME}/qualSystem
CPLUS=g++
INCLUDE=-I${APPHOME}/programs/c++_files/include/
LIB=-L${APPHOME}/lib/
O=-o
MV=mv
BIN=${APPHOME}/bin
#SPDLOG=-lspdlog
SPD_INCLUDE=-I${APPHOME}/programs/c++_files/spdlog/include
SPDLIB=-lspd_log
SPD_LIB_CPP=${SPDLIB}_cpp
PUBLIB=-lpubfun
PUB_LIB_CPP=${PUBLIB}_cpp
MYSQLLIB=-lmysql_api
MYSQLLIB_CPP=${MYSQLLIB}_cpp
C11='-std=c++11'
PTHREAD=-lpthread
#WARN=-g -Wall
#TQLR_FUN=${APPHOME}/programs/c++_files/mysql/tbl_qual_login_record.cpp


${TARGET}:#DEPENDANCES
        ${CPLUS} ${O} ${TARGET_BIN} ${TARGET_SOURCE} ${INCLUDE} ${LIB}  ${SPD_LIB_CPP} ${PUB_LIB_CPP} ${MYSQLLIB_CPP} ${C11} ${SPD_INCLUDE} $(MYSQL_LIB) $(MYSQL_INC)  ${PTHREAD} ${WARN} ${TQLR_FUN}
        ${MV} ${TARGET_BIN} ${BIN}

DEPENDANCES:
        cd $(APPHOME)/programs/c++_files/pubFun &&make

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值