linux使用gcc编译报错“undefined reference to `pthread_create'”
下面这个例子通过一个代码说明两个线程关联一个函数,实现并发操作,预期结果这两个线程都使用了print函数,它们各自执行各自的,不会因为使用了同一个函数而受到影响。my_test.cpp#include <stdio.h>#include <stdlib.h>#include <pthread.h>void *print(void *arg){...
·
下面这个例子通过一个代码说明两个线程关联一个函数,实现并发操作,预期结果这两个线程都使用了print函数,它们各自执行各自的,不会因为使用了同一个函数而受到影响。
my_test.cpp
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *print(void *arg)
{
for (int i = 0; i < 20; ++i)
{
printf("%d\n",i);
}
return NULL;
}
int main()
{
pthread_t p1, p2;
pthread_create(&p1, NULL, print, NULL);
pthread_create(&p2, NULL, print, NULL);
pthread_join(p1, NULL);
pthread_join(p2, NULL);
return 0;
}
但是在linux系统下使用以下命令直接编译该代码时报错“undefined reference to `pthread_create”
编译命令:
gcc my_test.cp -o my_test
由于pthread库不是标准linux库, 所以出错。 在以前的编译命令后面添加 -lpthread 即可,如下:
gcc my_test.cp -o my_test -lpthread
更多推荐
已为社区贡献2条内容
所有评论(0)