Chinaunix

标题: aix下编译动态库,请各位c++高人帮忙 [打印本页]

作者: foolishfox    时间: 2008-03-19 12:25
标题: aix下编译动态库,请各位c++高人帮忙
在AIX下,编译动态库,由于动态库要使用多线程和序列号,所以用了互斥锁。\r\npthread_mutex_t        m_SerialLock;                                /* Serial锁 */\r\n但是一初始化,程序就直接core了\r\npthread_mutex_init( &m_SerialLock, NULL );\r\n\r\n还有创建线程的时候,也coredump\r\nif ( pthread_create( &tid, NULL, thread_Send, NULL ) != 0 )\r\n                printf(\"creat send thread error!!!\\n\");        \r\n\r\n想不明白,请教高人。。。。。\r\n我将此动态库,加上main函数,编译成可执行文件,编译时有如下告警信息:\r\n\r\nld: 0711-224 WARNING: Duplicate symbol: thread_creds_t\r\nld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__F_thread_creds_t\r\nld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.\r\n\r\n貌似定义了两次,但是实际看代码,确确实实就定义了一次。而且可执行文件可以正常运行无错误。。。。。到底是怎么回事呢??\n\n[ 本帖最后由 foolishfox 于 2008-3-21 10:24 编辑 ]
作者: foolishfox    时间: 2008-03-21 08:40
沉下去了,自己顶一下,期待正解
作者: laizx    时间: 2008-08-28 12:30
估计是链接方式问题,我今天才把AIX下的动态库链接搞定,我是这样写的,你可以试试!\r\n\r\nAIX动态链接库的创建和使用:\r\n\r\n1.编译 \r\ncc -o test1.o -c test1.c\r\ncc -o test2.o -c test2.c\r\n\r\n\r\n2.生成动态库 \r\ncc -G -o test.so test1.o test2.o\r\n\r\n3.使用动态库\r\ncc -brtl -bexpfull -o test test.c test.so




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2