哪位高手能说说makefile

C语言 码拜 10年前 (2015-05-11) 820次浏览 0个评论
 

哪位高手能说说makefile

1分
makefile是通过比较文件产生日期,来确定必要的编译、链接操作。
一般用NMAKE.EXE(microsoft)或MAKE.EXE(borland)来处理它。
有没有专门介绍它的网站啊。
可以去看相关的书籍
其实一般的unix和windows编程(除了IDE)都要用到makefile的
说白了就是DOS下的批处理程序,UNIX下的Shell,但它是针对编译、链接等的。
换一种说法就是组织、生成一个软件(程序)的工程文件。
10分
如果你用过Linux/Unix的话,你就对他不陌生了。其实不管你用什么编程和编译都会用到Makefile,只不过是在Windows条件下,他把这一部分的工作给隐藏了。Makefile其实是一个脚本文件,目的是告诉操作系统和编译器如何去编译你的程序,也就是规则。
  假如你有好几个文件之间有调用关系,那么你的Makefile必须告诉编译器先编译谁后编译谁。Makefile中有很多宏定义,大多数是一些环境变量。也就是说这些环境变量告诉编译器到那里去找所需要的库。
  举个例子你就明白了。当你用VC编程的时候,你的工程里会有很多.cpp和.h ,当你点了编译按钮的时候,其实VC已经替你生成了一个脚本文件(不过不叫Makefile,因为Windows系统已经把Linux的那一套机制给改善了),然后他会按照这个规则去编译你的文件(你没加入项目的文件他不会编译,因为Makefile中没有写)。在Windows系统中也可以设置环境变量,VC在编译时也会自动去调用它们。
   总的来说,Windows这一套全是抄别人的。
同意楼上的,不过Windows的抄可谓“青出于蓝而胜于蓝”,UNIX/LINUX下面现在写Makefile也是一件很烦琐的工作。
Unix/Linux也已经做了改进,如Kdevelop已经不用写Makefile了,也有如automake、tmake等作makefile的工具可以用了。
4分
www.gnu.org
OR
www.linuxforum.net
to lastday(黑风小妖):
偶没用过Kdevelop,不过好象automake等宣称简化makefile制作的工具也是巨难用。
Makefile其实并不难写,只要你愿意下功夫。
如果automake不好用,那你试试tmake
我也想知道。
能不再说细些。像.lib, .obj , ….. 链接程序是如何链接的?
5分
《深入浅出MFC》中有少量介绍。
编译、链接无非还是用cl和link
比如:
one.obj : one.cpp  # Comment on dependency line
  cl one.cpp
two.obj : two.cpp
  cl two.cpp
all.exe : one.obj two.obj 
  link one.obj two.obj
简单的就是如此。
冒号后面的文件,任何一个比冒号前面的新,就执行它下面的那段命令。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明哪位高手能说说makefile
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!