在 Xcode 中没有匹配的函数调用"pthread_create"
No matching function call to 'pthread_create' in Xcode
没有对'pthread_create'的匹配函数调用
# include <stdio.h>
# include <pthread.h>
string nextProduced;
string nextConsumed;
char *BUFFER;
int BufferSize = 10;
void putItemIntoBuffer();
string produceItem();
string consumeItem();
void *Producer();
void *Consumer();
pthread_cond_t Buffer_Not_Full=PTHREAD_COND_INITIALIZER;
pthread_cond_t Buffer_Not_Empty=PTHREAD_COND_INITIALIZER;
pthread_mutex_t mVar=PTHREAD_MUTEX_INITIALIZER;
int main()
{
pthread_t pro, con;
BUFFER=(char *) malloc(sizeof(char) * BufferSize);
pthread_create(&pro,NULL,Producer,NULL);// Creates threads
pthread_create(&con,NULL,Consumer,NULL);// Creates threads
pthread_join(pro,NULL);
pthread_join(con,NULL);
return 0;
}
Xcode给了我一个错误,"没有匹配的函数调用‘pthread_create’"。我不知道我做错了什么。如有任何帮助,我们将不胜感激。
我本来可以编译它,但现在我收到了这个消息。我不知道问题出在哪里。线程1,队列:com.apple.main-read
libsystem_c.dylib`strlen:
0x7fff8d8364e0: pxor %xmm0, %xmm0
0x7fff8d8364e4: movl %edi, %ecx
0x7fff8d8364e6: movq %rdi, %rdx
0x7fff8d8364e9: andq $-16, %rdi
0x7fff8d8364ed: orl $-1, %eax
0x7fff8d8364f0: pcmpeqb(%rdi), %xmm0 Thread 1:EXC_ACCESS (code=1, address=0x0) //line in question
0x7fff8d8364f4: andl $15, %ecx
0x7fff8d8364f7: shll %cl, %eax
0x7fff8d8364f9: pmovmskb%xmm0, %ecx
0x7fff8d8364fd: andl %eax, %ecx
0x7fff8d8364ff: je 0x7fff8d83650b ; strlen + 43
0x7fff8d836501: bsfl %ecx, %eax
0x7fff8d836504: subq %rdx, %rdi
0x7fff8d836507: addq %rdi, %rax
0x7fff8d83650a: ret
0x7fff8d83650b: pxor %xmm0, %xmm0
0x7fff8d83650f: addq $16, %rdi
0x7fff8d836513: movdqa (%rdi), %xmm1
0x7fff8d836517: addq $16, %rdi
0x7fff8d83651b: pcmpeqb%xmm0, %xmm1
0x7fff8d83651f: pmovmskb%xmm1, %ecx
0x7fff8d836523: testl %ecx, %ecx
0x7fff8d836525: je 0x7fff8d836513 ; strlen + 51
0x7fff8d836527: subq $16, %rdi
0x7fff8d83652b: jmp 0x7fff8d836501 ; strlen + 33
生产者和消费者函数的签名应如下所示:
void *Producer(void *data);
void *Consumer(void *data);
我相信您也需要传递attributes参数。有关一个好的示例,请参阅Apple文档。
相关文章:
- 函数调用中参数的顺序重要吗
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 变量没有改变?通过向量的函数调用
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 我知道函数调用中存在歧义.有没有办法调用foo()函数
- 模板函数调用
- 获取从C++中同一类中的构造函数调用的方法返回的值
- 析构函数调用
- 成员函数调用和C++对象模型
- 使用共享指针的函数调用,其对象应为 const
- C++:编译时检查匹配的函数调用对?
- 函数调用C++中的参数太少
- 来自 DLL 的函数调用 [表观调用的括号前面的表达式必须具有(指向-)函数类型]
- 返回指向对象的指针的函数调用是否为 prvalue?
- C++ 如何重载 [] 运算符并进行函数调用
- 代码的效率. 转到和函数调用
- 是同一作用域的函数部分中的函数调用
- 从Windows窗体类调用PThread到Windows窗体类内的函数
- 从静态构造函数代码调用pthread库时失败