免费注册 查看新帖 |

Chinaunix

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

[新手入门] aix下编译动态库,请各位c++高人帮忙 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-19 12:25 |只看该作者 |倒序浏览
1可用积分
在AIX下,编译动态库,由于动态库要使用多线程和序列号,所以用了互斥锁。
pthread_mutex_t        m_SerialLock;                                /* Serial锁 */
但是一初始化,程序就直接core了
pthread_mutex_init( &m_SerialLock, NULL );

还有创建线程的时候,也coredump
if ( pthread_create( &tid, NULL, thread_Send, NULL ) != 0 )
                printf("creat send thread error!!!\n");        

想不明白,请教高人。。。。。
我将此动态库,加上main函数,编译成可执行文件,编译时有如下告警信息:

ld: 0711-224 WARNING: Duplicate symbol: thread_creds_t
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__F_thread_creds_t
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.

貌似定义了两次,但是实际看代码,确确实实就定义了一次。而且可执行文件可以正常运行无错误。。。。。到底是怎么回事呢??

[ 本帖最后由 foolishfox 于 2008-3-21 10:24 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-03-21 08:40 |只看该作者
沉下去了,自己顶一下,期待正解

论坛徽章:
0
3 [报告]
发表于 2008-08-28 12:30 |只看该作者
估计是链接方式问题,我今天才把AIX下的动态库链接搞定,我是这样写的,你可以试试!

AIX动态链接库的创建和使用:

1.编译
cc -o test1.o -c test1.c
cc -o test2.o -c test2.c


2.生成动态库
cc -G -o test.so test1.o test2.o

3.使用动态库
cc -brtl -bexpfull -o test test.c test.so
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP