Emacs下工程的编译:makefile

文章参考:makefile详解

个人环境介绍

ubuntu11.04操作系统

GUN Emacs 23.2.1

后面的叙述都基于上述环境。另外,本文主要针对C/C++程序开发,从难度上说,本文主要针对入门者。

基本流程

写C++程序基本上是这么几个步骤:

  1. 编辑代码
  2. 编写Makefile
  3. 编译代码,修改编译错误
  4. 调试代码,修改逻辑错误

编写Makefile

makefile实现了工程的自动编译,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

其中,make是一个命令工具,是一个解释makefile中指令的命令工具。

每个项目都有自己的makefile文件。

举例:有文件fileA.cpp对应头文件fileA.h,fileB.cpp对应头文件fileB.h,main.cpp包含头文件fileA.h,fileB.h; 要求输出main可执行文件

makefile编写如下:(没有实际验证,凭经验写的,如果有错误,还请不吝赐教)

main: main.o fileA.o fileB.o
gcc main.o fileA.o fileB.o -o main

main.o: main.cpp fileA.h fileB.h
gcc -c -o main.o main.cpp

fileA.o: fileA.cpp fileA.h
gcc -c -o fileA.o fileA.cpp

fileB.o: fileB.cpp fileB.h
gcc -c -o fileB.o fileB.cpp
注意事项:

gcc前一定要有一个tab分隔符,不能有空格;

当需要换行时,可用“\”隔开;

否则会出现“makefile:2: *** 遗漏分隔符 "的错误。

详细内容:

Makefile的内容

Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。
1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明确指出,要生成的文件,文件的依赖文件,生成的命令。
2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的。
3、变量的定义。在Makefile中我们要定义一系列的变量,变量一般都是字符串,这个有点你C语言中的宏,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上。
4、文件指示。其包括了三个部分:一个是在一个Makefile中引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile中的有效部分,就像C语言

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值