免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2192 | 回复: 6
打印 上一主题 下一主题

使用自己编写的静态链接库问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-08 18:05 |只看该作者 |倒序浏览
20可用积分
glibc中有一个库crypt,我现在想在我的程序中使用自己的crypt库,但,库的名字需要与glibc中的同名,即也为crypt,只是它是静态库。具体调用状况如下:

libcrypt.a(我自己的), libcrypt.so(glibc自带的,不想用它)

crypt_user.c  --> 需要调用libcrypt.a中我自己的crypt()函数

myutil.c   ---> 需要调用 crypt_user.c中的函数, myutil.c 需要被编译成动态库,即 libmyutil.so

可执行文件server ---> 需要调用 myutil.c 中的函数,即需要链接 libmyutil.so 库

请问,我应该在什么时候链接自己的libcrypt.a库?
创建 crypt_user.o 时?               
创建 libmyutil.so   时?               
创建 server          时?

各位帮帮忙,先谢过了~~

论坛徽章:
0
2 [报告]
发表于 2009-08-08 18:27 |只看该作者
libcrypt.a和libcrypt.so是不一样的,一个是静态库,一个是动态的。
创建 crypt_user.o时静态链接你的libcrypt.a。什么加密算法啊?

论坛徽章:
0
3 [报告]
发表于 2009-08-08 18:36 |只看该作者
原帖由 prolj 于 2009-8-8 18:27 发表
libcrypt.a和libcrypt.so是不一样的,一个是静态库,一个是动态的。
创建 crypt_user.o时静态链接你的libcrypt.a。什么加密算法啊?



动态库和静态库我知道不一样,只是目前需求是这样的,libcrypt.a是静态的,而且必须调用其中的crypt函数,而不使用glibc中的crypt.

其实我想了解一下链接静态库和动态库,有什么不同,我这种情况下Makefile应该怎么写

谢谢~

论坛徽章:
0
4 [报告]
发表于 2009-08-08 20:16 |只看该作者
如果你需要调用静态的
加个 -static -lcrypt就可以了

论坛徽章:
0
5 [报告]
发表于 2009-08-08 21:01 |只看该作者
编译libmyutil.so时链接上你的静态链接库就行了

论坛徽章:
0
6 [报告]
发表于 2009-08-08 21:13 |只看该作者
makefile里面给gcc加个参数就行,去查gcc的参数看看哪个是链接静态库的。

论坛徽章:
0
7 [报告]
发表于 2009-08-08 21:33 |只看该作者
不用参数,直接链接即可
比如
gcc a.o b.o aaaa.a
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP