一个MAKEFILE的详细解释
来源:互联网 发布:用linux打开文件命令 编辑:程序博客网 时间:2024/06/07 03:37
#定义变量CC
CC = g++
#############################################################
#定义变量 ‘$’引用变量,-I 给出变量的路径。 \ 连接符
HOMEPATH = $(TEDO_HOME)
OBJPATH = $(HOMEPATH)/obj
BINPATH = $(HOMEPATH)/bin
LIBPATH = $(HOMEPATH)/lib
SRCPATH = ./src
INCPATH = $(COMMONCPP2_INCLUDE) \
-I./include \
-I$(HOMEPATH)/public/base_component/inc \
-I$(HOMEPATH)/serv/procstep/include \
-I$(HOMEPATH)/serv/EntityLib/SCS_ET/include \
-I$(HOMEPATH)/serv/EntityLib/PUB_ET/include \
-I$(HOMEPATH)/serv/EntityLib/CUM_ET/include \
-I$(HOMEPATH)/serv/EntityLib/PDM_ET/include \
-I$(HOMEPATH)/serv/EntityLib/EBK_ET/include
#include 包含其他的makefile文件
include ../Makefile.serv
#-l-->指定连接时期望连接的库的名字
#-L-->指定连接库的搜索路径
#-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了。
LINKLIB = -L$(LIBPATH) -lbase -lclient -lprocstep
## -lrsautl
CXXFLAGS = $(COMMONCPP2_COMPILE_FLAG)
APP_COMPILE = $(CC) $(CXXFLAGS) -DNDEBUG -g -O2 -pipe
#makefile 命令参数-fPIC 作用: 当使用.so等类的库时,当遇到多个可执行文件共用这一个库时, 在内存中,这个库就不会被复制多份,让每个可执行文件一对一的使用,
#而是让多个可执行文件指向一个库文件,达到共用. 宗旨:节省了内存空间,提高了空间利用率
FPIC=-fPIC
#############################################################
#############################################################
.PHONY: all all-before all-after clean clean-custom
LINKOBJ = $(OBJPATH)/ScsDiscinfoBuffer.o \
$(OBJPATH)/op_scs_allotinform.o \
$(OBJPATH)/op_scs_base.o \
$(OBJPATH)/op_scs_begindelivery.o \
$(OBJPATH)/op_scs_buildinform.o \
$(OBJPATH)/op_scs_buildtouch.o \
$(OBJPATH)/op_scs_buildupdate.o \
$(OBJPATH)/op_scs_checkalter.o \
$(OBJPATH)/op_scs_correct_order.o \
$(OBJPATH)/op_scs_dealinform.o \
$(OBJPATH)/op_scs_deliveryinf.o \
$(OBJPATH)/op_scs_enddelivery.o \
$(OBJPATH)/op_scs_forderinfooper.o \
$(OBJPATH)/op_scs_fqtouch.o \
$(OBJPATH)/op_scs_informdetails.o \
$(OBJPATH)/op_scs_invoiceinfooper.o \
$(OBJPATH)/op_scs_moddelivery.o \
$(OBJPATH)/op_scs_modorder.o \
$(OBJPATH)/op_scs_order.o \
$(OBJPATH)/op_scs_orderinfooper.o \
$(OBJPATH)/op_scs_querytouch.o \
$(OBJPATH)/op_scs_querytouchrec.o \
$(OBJPATH)/op_scs_tradeorder.o \
$(OBJPATH)/op_scs_orderproc.o \
$(OBJPATH)/op_scs_querytrade.o \
$(OBJPATH)/op_scs_printinvoice.o \
$(OBJPATH)/op_scs_querydelivery.o \
$(OBJPATH)/op_scs_referinform.o \
$(OBJPATH)/op_scs_querysimpleinform.o \
$(OBJPATH)/op_scs_pehistoryqry.o \
$(OBJPATH)/op_scs_mgrorderqry.o \
$(OBJPATH)/op_scs_manu_reverse.o \
$(OBJPATH)/op_scs_batchbuildtouch.o \
$(OBJPATH)/op_scs_whtouch.o \
$(OBJPATH)/op_scs_order_hist.o \
$(OBJPATH)/op_scs_generateorder.o \
$(OBJPATH)/op_scs_merchandiseorder.o
#all作用: 是终极目标, 所有终极目标都依赖于all后的冒号之后的内容. 如果在冒号后没有的内容,在make时,即使写在文档里也不执行.
all: ScsDiscinfoBuffer.o op_scs_allotinform.o op_scs_base.o op_scs_begindelivery.o op_scs_buildinform.o op_scs_buildtouch.o op_scs_buildupdate.o op_scs_checkalter.o op_scs_dealinform.o op_scs_deliveryinf.o op_scs_enddelivery.o op_scs_forderinfooper.o op_scs_fqtouch.o op_scs_informdetails.o op_scs_invoiceinfooper.o op_scs_moddelivery.o op_scs_modorder.o op_scs_order.o op_scs_orderinfooper.o op_scs_querytouch.o op_scs_querytouchrec.o op_scs_tradeorder.o op_scs_orderproc.o op_scs_whtouch.o op_scs_querytrade.o op_scs_printinvoice.o op_scs_querydelivery.o op_scs_referinform.o op_scs_querysimpleinform.o \
op_scs_pehistoryqry.o op_scs_mgrorderqry.o op_scs_manu_reverse.o op_scs_batchbuildtouch.o op_scs_correct_order.o op_scs_order_hist.o op_scs_generateorder.o op_scs_merchandiseorder.o S_SCS.so
clean: clean-custom
${RM} $(OBJ)
ScsDiscinfoBuffer.o:
$(CC) -o $(OBJPATH)/ScsDiscinfoBuffer.o -c $(SRCPATH)/ScsDiscinfoBuffer.cpp \
$(INCPATH) \
$(DB_INCLUDE) $(FPIC)
op_scs_allotinform.o:
$(CC) -o $(OBJPATH)/op_scs_allotinform.o -c $(SRCPATH)/op_scs_allotinform.cpp \
$(INCPATH) \
$(DB_INCLUDE) $(FPIC)
op_scs_base.o:
$(CC) -o $(OBJPATH)/op_scs_base.o -c $(SRCPATH)/op_scs_base.cpp \
$(INCPATH) \
$(DB_INCLUDE) $(FPIC)
op_scs_begindelivery.o:
$(CC) -o $(OBJPATH)/op_scs_begindelivery.o -c $(SRCPATH)/op_scs_begindelivery.cpp \
$(INCPATH) \
$(DB_INCLUDE) $(FPIC)
op_scs_printinvoice.o:
$(CC) -o $(OBJPATH)/op_scs_printinvoice.o -c $(SRCPATH)/op_scs_printinvoice.cpp \
$(INCPATH) \
$(DB_INCLUDE) $(FPIC)
op_scs_querydelivery.o:
$(CC) -o $(OBJPATH)/op_scs_querydelivery.o -c $(SRCPATH)/op_scs_querydelivery.cpp \
$(INCPATH) \
$(DB_INCLUDE) $(FPIC)
op_scs_referinform.o:
$(CC) -o $(OBJPATH)/op_scs_referinform.o -c $(SRCPATH)/op_scs_referinform.cpp \
$(INCPATH) \
$(DB_INCLUDE) $(FPIC)
op_scs_querysimpleinform.o:
$(CC) -o $(OBJPATH)/op_scs_querysimpleinform.o -c $(SRCPATH)/op_scs_querysimpleinform.cpp \
$(INCPATH) \
$(DB_INCLUDE) $(FPIC)
op_scs_pehistoryqry.o:
$(CC) -o $(OBJPATH)/op_scs_pehistoryqry.o -c $(SRCPATH)/op_scs_pehistoryqry.cpp \
$(INCPATH) \
$(DB_INCLUDE) $(FPIC)
op_scs_generateorder.o:
$(CC) -o $(OBJPATH)/op_scs_generateorder.o -c $(SRCPATH)/op_scs_generateorder.cpp \
$(INCPATH) \
$(DB_INCLUDE) $(FPIC)
op_scs_merchandiseorder.o:
$(CC) -o $(OBJPATH)/op_scs_merchandiseorder.o -c $(SRCPATH)/op_scs_merchandiseorder.cpp \
$(INCPATH) \
$(DB_INCLUDE) $(FPIC)
S_SCS.so:
$(APP_COMPILE) $(SO_SERVFLAG) -o $(LIBPATH)/S_SCS.so $(SRCPATH)/SCS.cpp \
$(INCPATH) \
$(DB_INCLUDE) \
$(LINKOBJ) \
$(LINKLIB) \
$(OBJPATH)/pub_et.a \
$(OBJPATH)/scs_et.a \
$(OBJPATH)/cum_et.a \
$(OBJPATH)/pdm_et.a \
$(OBJPATH)/ebk_et.a \
-L$(LIBPATH)
# $(OBJPATH)/apps.o
# $(OBJPATH)/app_rand.o \
# $(OBJPATH)/rsautl.o \
# -L/platform/kernel_source/lib -lssl -L/platform/kernel_source/lib -lcrypto \
# /platform/kernel_source/lib/encrypt_dev.a
- 一个MAKEFILE的详细解释
- 解释一个 Makefile 文件
- makefile .d的解释
- Makefile的@解释
- makefile .d的解释
- 驱动程序Makefile 的解释
- 关于makefile的解释
- automake与makefile.am变量详细解释
- 一个匹配URL的正则表达式例子(带详细解释)
- 一个匹配数字的正则表达式(带详细解释)
- makefile的详细介绍
- makefile 的编写 详细
- makefile的详细讲解
- 超详细的Makefile
- ldd中Makefile的解释
- 通用的Makefile及解释
- 通用的Makefile及解释
- 通用的Makefile及解释
- 人脸识别技术,让科幻成为现实
- 幸福在以后
- (oracle数据库基础)第七章 PL/SQL子程序设计
- 插入排序
- 你还好么
- 一个MAKEFILE的详细解释
- asp.net代码中尖括号和百分号的用法
- 方便记忆 jquery 获取表单的值。。
- android值入广告异常 java.lang.NoClassDefFoundError: com.google.ads.AdView
- Linux目录架构详细解释
- .Net面试题
- hibernate get()和load()
- .NET Remoting和WebService .
- VC++访问Access