免费注册 查看新帖 |

Chinaunix

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

[进程管理] pthread_rwlock_destroy 编译问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2018-05-15 18:27 |只看该作者 |倒序浏览
因为代码中用到  pthread_rwlock_t 锁。
使用的函数包括
pthread_rwlock_rdlock()  // 读锁

pthread_rwlock_wrlock() // 写锁

pthread_rwlock_destroy()  // 释放锁

在交叉编译的时候提示 undefined reference to `pthread_rwlock_destory' 函数未定义



后来在虚拟机上写了简单的测试程序,如下:
#include <stdio.h>
#include <pthread.h>
pthread_rwlock_t lock;
void test(void)
{
        pthread_rwlock_rdlock(&lock);
        pthread_rwlock_wrlock(&lock);
        pthread_rwlock_destory(&lock);
        return;
}
void main()
{
        printf("pthread test \r\n";
        return ;
}
编译命令:gcc -o thread test.c -lpthread 结果还是 destroy_rwlock未定义。

/tmp/ccf3Br4N.o: In function `test':
test.c.text+0x23): undefined reference to `pthread_rwlock_destory'
collect2: error: ld returned 1 exit status

很奇怪的错误。大家有遇到过类似的问题吗,还请有经验的大牛指点一下



论坛徽章:
0
2 [报告]
发表于 2018-05-15 18:45 |只看该作者
问题解决了,是自己代码写错了。
我的代码是:pthread_rwlock_destory
编译提示是:pthread_rwlock_destory
头文件中的定义: pthread_rwlock_destroy

之前网上搜到类似的错误都是关于宏定义的,也就没想到自己代码写错。
刚才找到别人写的一个测试用例,想了别人可以自己的为什么不行,拿过来编译一次就过。自己的就是不行。
一行一行对比之后发现自己单词写错了,destroy 写错destory.
这下丢大了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP