`
jishublog
  • 浏览: 872886 次
文章分类
社区版块
存档分类
最新评论

makefile自动化编译学习

 
阅读更多


makefile文件描述源程序之间的相互关系,例如依赖,并自动维护编译工作。makefile 类似于shell脚本按照某种语法进行编写,文件说明如何各个源文件是如何被编译并且连接生成最后的可执行文件,好处就是自动化编译,极好地提高了软件开发的效率,应用非常广泛,以下代码是一些稍微简单的模板,不过已经在很多小项目里够用了:


################OPTION###################
CCOMPILE = gcc
CPPCOMPILE = g++
COMPILEOPTION = -c
INCLUDEDIR = -I${ORACLE_HOME}/rdbms/public -I${ORACLE_HOME}/precomp/public
LINK = gcc
LINKOPTION = -o Process
LIBDIRS = -L$(ORACLE_HOME)/lib
OBJS = Process.o Database.o Main.o Func.o
OUTPUT = Process
SHAREDLIB = -lclntsh
APPENDLIB =
PROC_OPTION = DEFINE=_PROC_ MODE=ORACLE
ESQL_OPTION =
################OPTION END################
ESQL = esql
PROC = proc
$(OUTPUT):$(OBJS) $(APPENDLIB)
$(LINK) $(LINKOPTION) $(LIBDIRS) $(OBJS) $(SHAREDLIB) $(APPENDLIB)

clean:
rm -f $(OBJS)
rm -f $(OUTPUT)
all: clean $(OUTPUT)
.PRECIOUS:%.cpp %.c %.C
.SUFFIXES:
.SUFFIXES: .c .o .pc .ec .cc


.c.o:
$(CCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.c

.cc.o:
$(CCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.cpp

.ec.c:
$(ESQL) -e $(ESQL_OPTION) $(INCLUDEDIR) $*.ec

.pc.c:
$(PROC) $(PROC_OPTION) $*.pc

CCOMPILE与CPPCOMPILE变量为编译语言,对应C与C++,COMPILEOPTION为编译的选择项,对应的是要编译的源代码,
INCLUDEDIR为编译所需要引入的头文件,比如库头文件等,这里引用的是ORACLE数据库系统的头文件。
LIBDIRS为编译所需要引入的库文件,
OBJS为编译的目标库文件,OUTPUT为最终的执行程序名称,PROC_OPTION为PROC语言的编译选项,
clean为清除编译出的目标文件,
.c.o为编译生成目标库文件的命令集合
$(OUTPUT)为生成目标执行程序的命令集合

分享到:
评论

相关推荐

    GNU Make自动化编译工具-编译静态库与动态库 示例makefile.zip

    Make自动化编译工具-编译静态库与动态库 MD Document:2/28/2016 2:23:09 AM by Jiimbowhy CSDN PuBLiSh:http://blog.csdn.net/winsenjiansbomber/article/details/50758180 在软件开发过程中,编译程序有时会成为一...

    Makefile写法及自动化工具

    Makefile写法及自动化工具,帮你简化多个c程序编译的麻烦。。

    如何编写Makefile

    makefile 带来的好处就是——“自动化编译”,一旦写好,只需要一个make 命令,整个工程完全自动编译,极大的提高了软件 开发的效率。make 是一个命令工具,是一个解释makefile 中指令的命令工具,一般来说,大多数...

    Makefile学习资料集

    makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE...

    自动化的智能Build脚本(Smart Makefile)

    智能自动化Makefile可以完成如下工作: *自动获去操作系统类型并指定为全局编译选项(-DYOUR_OS_NAME) *自动出来源代码文件之间的依赖关系 *使用colorgcc可以彩色显示警告和错误信息 *智能控制debug和release版本的...

    Makefile_中文教程

    makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile 中指令的命令工具,一般来说,大多数的IDE...

    跟我一起学makefile

    makefile 带来的好处就是——“自动化编译”,一旦写好,只需要一个 make 命令,整个工程完全自动编译,极大的提高了软件开发的效率。make 是一个命令工具,是一个解释 makefile 中指令的命令工具,一般来说,...

    Makefile规则、Makefile规则、Makefile的条件执行、Makefile函数、Makefile库的生成和使用

    Makefile是一种用于自动化编译程序的工具,它包含一系列规则来指示系统如何构建应用程序。在Makefile中,每个规则由一个目标文件、一个或多个依赖文件以及一组命令行指令组成。make 程序根据 Makefile 中的规则描述...

    Makefile教程-经典

    makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE...

    Makefile教程

    makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE...

    中文Makefile的教程

    中文Makefile的教程:makefile带来的好处就是——“自动化编译”

    跟我一起写 Makefile(pdf格式)

    makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE...

    Makefile详解

    makefile 带来的好处就是——“自动化编译” ,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是 一个命令工具,是一个解释akefile 中指令的命令工具,一般来说,大多数的...

    GNU Makefile 文件编写

    linux下Makefile 文件的制作,讲解很详细

    教你写Makefile(很全,含有工作经验的)

    makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE...

    Makefile中文教程(高清带标签)

    makefile 带来的好处就是——“自动化编译”,一旦写好,只需要一个 make 命令,整个工程完全自动编译,极大的提高了软件开发的效率。make 是一个命令工具,是一个解释 makefile 中指令的命令工具,一般来说,大多数...

    Linux的makefile语法规则

    makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE...

    跟我一起写makefile

    makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE...

    Makefile简易教程.pdf.zip

    Makefile教程,会不会写 makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。 因为, makefile 关系到了整个工程的...处就是——“自动化编译”,一旦写好,只需要一个 make 命令,整个工程完全自动编译

    makefile 教程.rar

    makefile带来的好处就是——“自动化编译”,一旦 写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工 具。

Global site tag (gtag.js) - Google Analytics