免费注册 查看新帖 |

Chinaunix

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

关于linux 静态编译 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-30 09:43 |只看该作者 |倒序浏览
我编一个静态库 假设为a.a 编译静态库的时候用 -lpthread
然后我调用a.a这个库的函数 为什么还要加上-lpthread
静态编译不是把所有东西都编译进去了吗? 有什么办法可以调用a.a这个库的时候不加-lpthread吗?
请大侠们帮忙 !!!

论坛徽章:
0
2 [报告]
发表于 2010-06-30 10:39 |只看该作者
把a.a作为依赖文件编译试一试。

论坛徽章:
0
3 [报告]
发表于 2010-06-30 11:03 |只看该作者
不行 我试过了
而且即使可以也不可行啊 别人用库都是直接包含头文件静态编译加-l就可以了 用我的库居然要把库当成依赖文件
有点奇怪 呵呵

论坛徽章:
0
4 [报告]
发表于 2010-06-30 12:20 |只看该作者
将a.a放入标准库目录下

论坛徽章:
0
5 [报告]
发表于 2010-06-30 12:39 |只看该作者
放进去了-la不行 要调用必须-lpthread
我用的是linux 2.4.20

论坛徽章:
0
6 [报告]
发表于 2010-06-30 13:51 |只看该作者
我明白了 用ar编译的话只编译进.o文件至于链接文件的话没有编译进去 所以要在ar后面把静态库也编译进去
也就是ar后面加libpthread.a
但是我加进去了调用里面的库的时候提示undefined reference to `pthread_create' 搞不清楚怎么回事

论坛徽章:
0
7 [报告]
发表于 2010-06-30 14:18 |只看该作者
因为 libpthread 本身又需要太多的动态库了

论坛徽章:
0
8 [报告]
发表于 2010-06-30 15:16 |只看该作者
有什么办法实现?

论坛徽章:
0
9 [报告]
发表于 2010-06-30 15:20 |只看该作者
因为 libpthread 本身又需要太多的动态库了
platinum 发表于 2010-06-30 14:18



    这种说法我感觉不正确 因为-lpthread是静态链接 如果libpthread.a本身需要很多的动态库我们是不需要关心的 这和环境有关系
而我编译的环境是一样的环境 所以动态库这种说法是有问题的

论坛徽章:
0
10 [报告]
发表于 2010-06-30 15:22 |只看该作者
gcc -static可以么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP