如果我已经安装了 pthread 库,我该如何解决这个错误“/usr/bin/ld:无法找到 -libpthreads collect2:错误:ld 返回 1 退出状态”?

如果我已经安装了 pthread 库,我该如何解决这个错误“/usr/bin/ld:无法找到 -libpthreads collect2:错误:ld 返回 1 退出状态”?

**我编写了这个 c 代码,并且我已经安装了一个编写此命令的 pthread 库**sudo apt-get install lpthread-stubs0-dev

#include <stdlib.h>
#include <pthread.h>
#include <stdio.h>
#define NUM_THREADS 5
void *PrintHello(void *threadid)
{
 printf("\n%d: Hello World!\n", threadid);
 pthread_exit(NULL);
}
int main (int argc, char *argv[])
{
 pthread_t threads[NUM_THREADS];
 int rc, t;
 for(t=0; t<NUM_THREADS; t++)
 {
 printf("Creating thread %d\n", t);
 rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
 if (rc)
 {
 printf("ERROR; return code from pthread_create() is %d\n", rc);
 exit(-1);
 }
 }
 pthread_exit(NULL);
}

答案1

执行以下命令来获取你的程序(我把它放在前列腺素)编译:

sudo apt-get update
sudo apt-get install build-essential

gcc pth.c -lpthread -o pth

然后运行它:

./pth

注意:出于调试目的,请使用gcc pth.c -lpthread --include-directory=/usr/include -o pth --verbose并将此命令的输出添加到问题正文中。

相关内容