哪位高手能说说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 简单的就是如此。 冒号后面的文件,任何一个比冒号前面的新,就执行它下面的那段命令。 |