动态库 gcc makefile

1、、编译过程

2、动态链接、静态链接

   

    

动态链接:您可以动态地将程序和共享库链接并让 Linux 在执行时加载库(如果它已经在内存中了,则无需再加载)。

动态加载:有选择地调用库中的函数

    

3、gcc

预处理    gcc -E test.c -o test.i 或 gcc -E test.c
编译生成汇编    gcc -S test.i -o test.s
汇编生成机器码    gcc -c test.s -o test.o
链接生成目标文件    gcc test.o -o test
尽可能产生多告警信息    gcc -Wall illcode.c -o illcode

-I  包含文件路径

-L  链接库路径

-static 使用静态库链接

静态库编译:编译为.o后使用ar

动态库编译:gcc -shared -o libmystack.so mystack.o

 

4、makefile

target... : prerequisites ...

<tab>command

 

example:

   objects = main.o kbd.o command.o display.o \
             insert.o search.o files.o utils.o
 
   edit : $(objects)
           cc -o edit $(objects)
 
   $(objects) : defs.h
   kbd.o command.o files.o : command.h
   display.o insert.o search.o files.o : buffer.h
 
   .PHONY : clean
   clean :
           rm edit $(objects)

可以使用include包含其他makefile

 

工作方式:

...

posted @ 2016-03-05 10:07  zhou09  阅读(295)  评论(0编辑  收藏  举报