我已经创建了正在使用pthreadVC.lib
哪个Win32
版本的小程序。我正在使用视觉工作室 2013。
当我更改了x64
od 相同程序的程序设置,然后我链接了 pthreadVC2.lib(用于 x64 配置),然后我的程序pthread_join
也崩溃了,而不是加入我使用pthread_cancel
但有同样的问题。此外,我自己为 x64 构建了 pthread 并链接了该库,但仍然遇到同样的问题。
我的测试代码
#include<stdio.h>
#include<pthread.h>
pthread_mutex_t mutex = NULL;
pthread_cond_t cond = NULL;
void test(){
pthread_mutex_lock(&mutex);
printf("\n Threads Working");
pthread_mutex_unlock(&mutex);
}
void main() {
pthread_t threadid;
pthread_create(&threadid,NULL,(void*)test,NULL);
pthread_join(threadid,NULL);
printf("\n FINISH ");
if (getchar())
return;
}
在 x64 配置上出现的错误是
Pthread64_bit.exe 中 0x0000000180002C70 (pthread_dll.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0x000000000000001A。
编辑:
我还从C 中的 pthreads 复制了示例——一个最小的工作示例
并尝试运行但在pthread_join
.
那么你能告诉我是否有任何其他设置需要做x64
或我错过了什么?