windows7下makefile例程

  最近因为工作关系需要接触makefile,感觉在dos窗口下输入一个make后就可以等着目标文件生成的感觉还是很舒服的,相比原来使用IDE开发,我觉得makefile让我对编译过程有了进一步的了解。

  首先创建一个c源文件a.c

 代码如下:

#include"stdio.h"

void main()
{
	printf("hello makefile\n");
}

然后新建一个文本文档,名字改为makefile,然后去掉后缀名,然后编辑这个文件

makefile具体内容如下:

DIR = D:\MyDownloads\Download\VC6.0green\VC98\Include
LIB_DIR = D:\MyDownloads\Download\VC6.0green\VC98\Lib

Test:a.obj
	Link a.obj $(LIB_DIR)/LIBC.LIB $(LIB_DIR)/OLDNAMES.LIB $(LIB_DIR)/KERNEL32.LIB
a.obj:a.c
	cl a.c -I $(DIR) $(LIB_DIR)/LIBC.LIB $(LIB_DIR)/OLDNAMES.LIB $(LIB_DIR)/KERNEL32.LIB 
clean:
	@echo clean the following files:
	rm a.exe
	rm a.obj
	@echo Done!

 


按代码顺序解释下:

1DIR是创建的一个变量,这个变量就是一个目录,这个目录是存放了c程序中stdio.h的路径

2LIB_DIR同DIR,这个路径是存放了编译中需要用到的静态库的路径,这三个静态库分别为LIBC.LIB   OLDNAMES.LIB  KERNEL32.LIB

4目标文件为Test,冒号后面为生成这个目标文件的依赖文件,也就是a.obj

5链接a.obj还有那三个静态库来生成目标文件

6中间文件a.obj,冒号后面同样是依赖文件

7编译源文件a.c还有三个静态库文件

8clean  便于重新编译链接

9@echo 后面的内容是显示在dos中的内容

10移除a.exe

11移除a.obj

12同9


makefile编写完成后的操作过程:

进入dos窗口,然后进入到含有makefile的目录下,输入make,运行完成后输入a.exe就可以看见打印信息。

然后输出make clean就可以清除a.exe和a.obj


在编写makefile中遇到的问题:

1对于源文件不在同一目录下的处理

解决方法:定义一个目录,然后在编译链接过程中的依赖目录中加入对应库文件,如果是在别的目录下的头文件,那么在依赖关系中前需要加入-I(i)。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值