- 论坛徽章:
- 0
|
unixware7.11下多线程编译时,链接库出错,是否缺少开发库呢,如何处理?
命令行:cc -o tmp tmp.c -lthread
出错信息如下:
Undefined first referenced
symbol in file
_libc_sigunlock /usr/lib/libthread.so
_libc_siglock /usr/lib/libthread.so
用man sigunlock时,系统提示没有这个函数,同时系统内只有/usr/lib/libthread.so这个动态库文件。
_libc_sigunlock以及_libc_siglock 都在/usr/lib/libthread.so 文件里有说明,但是用lm命令查看如下:
[369] |000000000000|000000000000|NOTY |GLOB |0 |UNDEF |_libc_siglock
这里的UNDEF 是何意思?
源程序如下:
#include <pthread.h>;
#include <sys/time.h>;
#include <sys/types.h>;
#include <sys/socket.h>;
#include <netinet/in.h>;
#include <arpa/inet.h>;
#include <unistd.h>;
#include <fcntl.h>;
#include <string.h>;
#include <errno.h>;
#include <stdio.h>;
pthread_t thread[10];
void scanhost();
main()
{
int i=0, temp;
pthread_t threadid[10];
for (i=0;i<10;i++)
{
pthread_create(&thread, NULL, scanhost, NULL);
}
temp=i;
/*等待创建的所有线程结束*/
}
void scanhost()
{
} |
|