代码改变世界

每天一个topic --makefile 和gcc

2013-08-18 10:22  chonghui1001  阅读(189)  评论(0编辑  收藏  举报

1. 获取当前所有的.c 文件 由.c 得到.o文件

SOURCE=$(wildcard ./*.c ../*.c)

OBJS   = $(patsubst %.c,%.o,$(SOURCE)) 

2.可执行文件依赖与当前所有.c 文件

$(target):$(SOURCE)

  gcc -cflag -o target -dlflag

3. cflag 

  指定头文件路径 -I../ -I./ 指定动态库或者(静/态)库路径 -L../ -L./ 

       -I../log/ -I./

4.dlfage 库路径

  -Wl   允许动态搜索库

      -Wl,-rpath,./,-rpath,../log/ 指定动态库搜索路径

5. 要编译动态库

    cflag -shared -fPIC

 gcc -shared -fPIC -o libtest.so test.c

6.要编译静态库

  gcc -c sourec 

  ar crv libtest.a $(OBJS)

 

-lefence -lpthread