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