本文介绍了的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;/ *创建thr_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编译问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!