undefided reference to 'sem_init' 等信号量问题
2012-04-20 17:36
423 查看
解决办法:在编译时加上 -pthread,
eg: gcc -pthread sem.c -o sem
#include<stdio.h>
#include<errno.h>
#include<semaphore.h>
static int shared = 0;
static sem_t sharedsem;
int initshared(int val)
{
if(sem_init(&sharedsem,0,1) == -1)
return -1;
shared = val;
return 0;
}
int getshared(int *sval)
{
while(sem_wait(&sharedsem) == -1)
if(errno != EINTR)
return -1;
*sval = shared;
return sem_post(&sharedsem);
}
int incshared()
{
while(sem_wait(&sharedsem) == -1)
if(errno != EINTR)
return -1;
shared++;
return sem_post(&sharedsem);
}
int main()
{
int sval;
initshared(1);
getshared(&sval);
printf("sval is %d\n",sval);
incshared();
printf("shared is %d\n",shared);
return 0;
}
eg: gcc -pthread sem.c -o sem
#include<stdio.h>
#include<errno.h>
#include<semaphore.h>
static int shared = 0;
static sem_t sharedsem;
int initshared(int val)
{
if(sem_init(&sharedsem,0,1) == -1)
return -1;
shared = val;
return 0;
}
int getshared(int *sval)
{
while(sem_wait(&sharedsem) == -1)
if(errno != EINTR)
return -1;
*sval = shared;
return sem_post(&sharedsem);
}
int incshared()
{
while(sem_wait(&sharedsem) == -1)
if(errno != EINTR)
return -1;
shared++;
return sem_post(&sharedsem);
}
int main()
{
int sval;
initshared(1);
getshared(&sval);
printf("sval is %d\n",sval);
incshared();
printf("shared is %d\n",shared);
return 0;
}
相关文章推荐
- ubuntu下 GCC编译程序出现 undefined reference to `std::ios_base::Init::Init()'问题
- ubuntu下 GCC编译程序出现 undefined reference to `std::ios_base::Init::Init()'问题
- ffmpeg libx264编译出现error: undefined reference to 'x264_picture_init'等问题的解决方法
- ubuntu下 GCC编译程序出现 undefined reference to `std::ios_base::Init::Init()'问题——gcc编译C++代码
- undefined reference to `curl_easy_init'
- ----linux--内核编译的问题:undefined reference to `printascii'
- undefined reference to 'pthread_create'问题解决
- undefined reference to 'pthread_create'问题解决
- undefined reference to 'pthread_create'问题解决
- 关于:(.text+0x21): undefined reference to `shm_open'问题
- undefined reference to `clock_gettime' 链接错误问题解决
- undefined reference to 'pthread_create' 问题解决[转]
- undefined reference to `sqrt' 问题
- undefined reference to 'pthread_create'问题解决
- undefined reference to 'pthread_create'问题解决
- (转)undefined reference to 'pthread_create'问题
- 关于在Mingw下链接时抛出undefined reference to `XXX'异常的问题
- undefined reference to 'pthread_create'问题解决
- undefined reference to 'pthread_create'问题解决
- undefined reference to 'pthread_create'问题解决