本文介绍了的Pthread和OS X的gcc编译问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我已经编译在Linux(Ubuntu的11.04)的罚款的脚本,但不能在OS X(狮子)。

  -pthread的gcc -o HW1 hw1.c
hw1.c:22:错误:预期'=',',',',','巴尔'前'ASM'或'__attribute__'
hw1.c:在函数'__syncthreads:
hw1.c:53:错误:'巴尔'未声明(第一次使用此功能使用)
hw1.c:53:错误:(每个未声明的标识符报道只有一次
hw1.c:53:错误:它出现在每个功能)
hw1.c:54:错误:'PTHREAD_BARRIER_SERIAL_THREAD'未申报(在一次使用此功能)
hw1.c:在函数'parallel_psum:
hw1.c:94:错误:'巴尔'未声明(第一次使用此功能使用)
hw1.c:107:警告:分配从兼容的指针类型

这里的code第一次22行:

 的#include<&stdlib.h中GT;
#包括LT&;&stdio.h中GT;
#包括LT&;&time.h中GT;
#包括LT&;&math.h中GT;
#包括LT&; SYS / time.h中>
#包括LT&;&pthreads.h中GT;
#包括LT&;&ASSERT.H GT;/ *创建t​​hr_func线程参数结构()* /
typedef结构_thread_data_t {
    INT TID;
    INT *整数;
    INT *款项;
    INT num_ints;
    INT *温度;
} thread_data_t;const int的MIN_RAND_INT = 1;
const int的MAX_RAND_INT = 65000;// pthreads的屏障变量
pthread_barrier_t巴尔;

任何想法,为什么发生这种情况?


解决方案

根据

_POSIX_BARRIERS

So, only if the _POSIX_BARRIERS macro is defined as positive number, you can use pthread_barrier_t or pthread_barrier_wait.

Mac OS X is POSIX Compliant, but full list of implemented options is not available online. There is a letter in apple mainling list from 2006, which says there is no barriers in Mac OS X.

I know that Solaris had some problems with pthread_barrier too.

这篇关于的Pthread和OS X的gcc编译问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-06 10:40
查看更多