-lpthread链接错误

6 浏览
0 Comments

-lpthread链接错误

这个问题已经有答案了:

可能是重复的问题:

undefined reference to pthread_create in linux (c programming)

有以下程序:

void *thread(void *vargp);
int main() {
  pthread_t tid;
  pthread_create(&tid, NULL, thread, NULL);
  exit(0);
}
/* thread routine */
void *thread(void *vargp) {
  sleep(1);
  printf("Hello, world!\n");
  return NULL;
}

我应该对其进行更正。我已经添加了必要的包含,如下所示:

#include 
#include 
#include 
#include 

但是我仍然遇到以下错误:

/tmp/ccHwCS8c.o: In function `main':
1.c:(.text+0x29): undefined reference to `pthread_create'
collect2: ld returned output state 1

我尝试像答案中说的一样,使用编译器添加-lpthread,但我仍然得到了这些错误代码:

@lap:~$ gcc -Wall -lpthread 1.c -o uno
/tmp/ccl19SMr.o: In function `main':
1.c:(.text+0x29): undefined reference to `pthread_create'
collect2: ld returned exit state 1

admin 更改状态以发布 2023年5月23日
0
0 Comments

你需要在编译时使用-lpthread标志,以便将libpthread链接到可执行文件中。

此外,你还应该添加pthread_join()函数,以便让主线程等待新线程结束。在你当前的代码中,你将看不到Hello World,因为主线程的结束将导致所有子线程退出。

0
0 Comments

在编译/链接时添加“-lpthread”。

0