Pthread + Visual Studio 2013编译错误

时间:2014-01-11 18:57:58

标签: c++ pthreads visual-studio-2013

我遇到了pthread.h和使用c ++和Visual Studio 2013进行多线程处理的问题。 这是我的代码

#include <iostream>
#include <cstdlib>
#include <pthread.h>

using namespace std;

#define NUM_THREADS     1

void *PrintHello(void *)
{

    cout << "Hello World! Thread ID, ";
    return NULL;
}

int main()
{
    pthread_t threads[NUM_THREADS];
    int rc;
    rc = pthread_create(&threads[1], NULL,PrintHello, NULL);
    if (rc){
        cout << "Error:unable to create thread," << rc << endl;
        exit(-1);
    }
}

当我尝试运行此

Error   1   error LNK2019: unresolved external symbol __imp__pthread_create referenced in function _main    
Error   2   error LNK1120: 1 unresolved externals   

我收到这些错误。但我找不到解决问题的方法。我需要你的帮助。

1 个答案:

答案 0 :(得分:4)

我使用了Oakdale提供的链接。

http://web.cs.du.edu/~sturtevant/pthread.html

Windows 7 x64上 Visual Studios 2013 Ultimate 的细微更改。

以下是我使用的来源:http://sourceforge.net/projects/pthreads4w/?source=typ_redirect

这包含pthreads的预编译版本。使用x86目录(即/ bin,/ lib,/ include来拉动.dll,libs和.h。

还应该添加到VS2013目录中的其他.dll,lib和.h。

将pthreads包含在VS2013项目中:

  1. 右键点击您的项目&gt;属性&gt;配置属性&gt; C / C ++&gt;其他包含目录&gt;添加&#34; -lpthread&#34;

  2. 来自同一&#34;项目&#34;属性页面&gt;配置属性&gt;链接器&gt;输入&gt;添加

    • pthreadVC2.lib
    • pthreadVCE2.lib
    • pthreadVSE2.lib
  3. 我能够编译上面的示例并使用debug执行。我在第一次拍摄时得到了这个,所以我可能错过了其他环境的东西。请发布任何持续的问题。