望麓自卑—湖南大学最具潜力的校园传媒

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2461|回复: 1

怎么用makefile生成一个动态库??

[复制链接]
发表于 2007-12-2 23:55:37 | 显示全部楼层 |阅读模式
RT。要求生成一个动态库、。。。
发表于 2007-12-5 15:04:01 | 显示全部楼层
下面是一个makefile  ,用与创建使用动态库的程序和动态库:  
  
  
CFLAGS=-wALL  -L  
libcflags=$(CFLAGS)  -D_REENTRANT  -fPIC  #这行定义了预处理符号(_REENTRANT),并且产生与位置无关的代码(-fPIC),由于库是在运行的时候被调入,所以这是必须的  
CC=gcc  
OBJS=myprogram.o  
LIBOBJS=safecalls.o  safecalls2.o  
AR=ar  rc  
LIBRARY=libsafec.so.1.0.0  
SONAME=libsafec.so.1  
  
all:myprogram  
  
myprogram:  $(OBJS)  $(LIBRARY)  
$(CC)  $(CFLAGS)  -O  $@  myprogram.o  -lsafec  
  
$(LIBRARY)(LIBOBJS)  
$(CC)  -shared  -W1,-soname,  $(SONAME)  -O  $  @  $(LIBOBJS)  -lc#-share表示产生共享代码,-W1使得后面的选项被传递给连接器(-soname  libsafec.so.1)  
ln  -sf  $  @  libsafec.so  
ln  -sf  $  @  $(SONAME)#上两行创建了两个链接符,并且装载库进入程序  
  
myprogram.o:myprogram.c  
$(CC)  $(CFLAGS)  -c  -o  $@  $<  
  
%.o:%.c  
$(CC)  $(CFLAGS)  -c  -o  $@  $<  
  
clean:  
-rm  $(OBJS)  $(LIBOBJS)  $(LIBRARY)  libsafec.so  $(SONAME)  myprogram
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

每日推荐上一条 /1 下一条

小黑屋|手机版|湖南大学望麓自卑校园传媒 ( 湘ICP备14014987号 )

GMT+8, 2025-5-19 06:55 , Processed in 0.062026 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表