无法运行 C 程序的 make 文件

无法运行 C 程序的 make 文件

我有一个小程序,应该启动第二个线程。问题是,当尝试使用 make 制作该程序的可执行文件时。我得到:

 engine@ubuntu:~/Desktop/Lecture$ make thread
 cc     thread.c   -o thread
 thread.c: In function ‘main’:
  thread.c:10:2: error: unknown type name ‘pthread’  .............

这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <errno.h>

void *func(void*);

int main(){

pthread tid;
if (pthread_create(&tid,NULL,fun,NULL)!= 0 ){
    printf("error by _ pthread \n");
}
printf ( "thread output1 \n");
sleep(1);
return EXIT_SUCCESS;
  }  

 void *fun(void* data){
printf("thread output2 \n")
  }

我不认为该程序有错,也许是我运行 make 命令的方式有错?

知道我为什么会得到这个吗?提前感谢你的帮助

答案1

您忘记链接动态库了吗?

cc 线程.c -o 线程-lpthread

更多错误:

  • pthread 的类型是 pthread_t
  • 你拼错了 fun 和 func
  • printf 后的函数中没有分号

答案2

根据手册页pthread_create和互联网上的一些示例代码,第一个参数是指向的指针pthread_t,而不是pthread。试试:

pthread_t tid;

相关内容