我尝试在 ubuntu 中使用 codeblocks 实现多线程。
我输入了以下程序。
void *myThreadFun(void *vargp)
{
sleep(1);
printf("Printing hi from Thread \n");
return NULL;
}
int main()
{
pthread_t tid;
printf("Before Thread\n");
pthread_create(&tid, NULL, myThreadFun, NULL);
pthread_join(tid, NULL);
printf("After Thread\n");
exit(0);
}
但我无法在 codeblocks 中编译和运行该程序。我收到以下错误
multithread.c undefined reference to 'pthread_create'
multithread.c undefined reference to 'pthread_join'
有人可以帮我吗
我在代码中使用了以下头文件:
pthread.h
stdio.h
stdlib.h
答案1
在 Code::Blocks 中如果您使用 GNUgcc
编译器,您可能需要将-pthread
编译器标志添加到编译器和链接器选项中(在“项目 --> 构建选项...”下)
答案2
不要忘记确保正确安装了 pthread 库。您可以在软件中心的“libpthread-stubs0-dev”下找到它,或者只需通过执行以下操作即可安装:
sudo apt-get install libpthread-stubs0-dev
。
另外,我一开始并不明白为什么你只需要手动输入-pthread......