pthread互斥锁:错误LNK2019:未解析的外部符号c ++

时间:2012-12-10 15:20:58

标签: c++ locking pthreads

我收到此链接错误,我找不到解决方案。你能不能把我放在正确的方向去寻找它? 我得到:错误LNK2019:未解析的外部符号_ imp _pthread_mutex_lock在函数“private:bool __thiscall ...中引用了这里带有参数的函数的全名。 pthread_mutex_lock pthread_mutex_unlock 用于此函数(不作为参数)。 包括“pthread.h”不会改变任何内容。

3 个答案:

答案 0 :(得分:2)

pthread库适用于POSIX系统(Linux,BSD,Mac OS)。您表示您使用的是Windows中的Visual Studio - 如果您希望在Windows上进行多线程处理,请参阅this page

更好的是,如果你可以使用更新的工具,C ++ 11提供built-in threading functionality

答案 1 :(得分:0)

您需要添加

-lpthread

-lthread

到编译器命令行(取决于操作系统和编译器)

更新:@nos正确地指出这似乎是MS链接器错误。你不应该在Visual Studio中使用pthread。 Windows Threading API非常不同。

答案 2 :(得分:0)

我使用了来自sourceware.org/pthreads-win32的pthread-win32。

我现在已经面对这个问题几个小时了,终于可以通过添加' lib'' include'来解决这个问题。和' bin'随下载提供的文件夹内容,在Visual Studio依赖安装文件夹中的相应文件夹中。

我在

  

" C:\ Program Files(x86)\ Microsoft Visual   工作室\ 2017 \社区\ VC \工具\ MSVC \ 14.10.25017"

然后我添加了库依赖项' pthreadVC2.lib;'在

  

项目 - >属性 - >链接器 - >输入 - >额外的依赖

瞧! pthreads开始工作了。