g++编译pthread_create函数的注意点

1.在c++中函数的参数是和函数一起进行编译的,参数列表为:int pthread_create(pthread_t*, const pthread_attr_t*, void* (*)(void*), void*),因此回调函数定义时参数中一定要有个void*的参数

2.pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。在编译中要加 -lpthread参数


例子:

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <pthread.h>  
  4. void * hello(void *arg) {  
  5.     printf("hello world\n");  
  6.     return NULL;  
  7. }  
  8.   
  9. int main() {  
  10.     pthread_t pid;  
  11.     pthread_create(&pid, NULL, hello, NULL);  
  12.     sleep(1);  
  13.     return 1;  
  14. }  
  15. //g++ -o test -g -Wall -lpthread test.c


你可能感兴趣的:(c,linux,null)