makefie 和 gcc

 

写makefile需要考虑的方面:

  1.目标和依赖关系:hash.o:de_hash.c de_hash.h common.h //目标是hash.o,依赖于文件de_hash.c de_hash.h common.h,当这三个文件有变化时将重新生成目标

     需要考虑的问题:makefile如何找到依赖文件?

     设置VPATH=./:../include 从当前文件和../include中找依赖文件

     2.生成目标的规则(编译)gcc -c  de_hash.c //编译de_hash.c文件

  需要考虑的问题:如果de_hase.c中用到了头文件,gcc如何找到头文件?

     指定 -I ./ -I ../include 编译时从./ 和../ 中找头文件

     正确应当是 gcc -c de_hash.c -I ../include -I./

     3.生成目标规则(链接) gcc -o main main.o common.o event.o -lXX   //将目标文件(经过编译的文件)和库文件链接成可执行文件

     需要考虑的问题:gcc 如何找到目标文件?gcc如何找到库文件?

     对于目标文件,直接指定路径如: ../common/common.o

     对于-lxx 用 -L 指定路径

     正确的应当是gcc -o main main.o ../common/common.o ../event/event.o -lxx -L /usr/local/lib

 

posted @ 2012-12-06 17:26  追心  阅读(150)  评论(0编辑  收藏  举报