windows下QT配置pthread,解决main.obj:-1: error: LNK2019: 无法解析的外部符号 __imp_pthread_create,该符号在函数 main 中被引用

QT中使用msvc2017_64编译时,本来不支持pthread。但是又想用pthread来写程序,就在网上各种查找办法,不过好像都不太可以,会报错:

main.obj:-1: error: LNK2019: 无法解析的外部符号 __imp_pthread_create,该符号在函数 main 中被引用

尝试了好久。。。
说下我最终的操作吧。

  1. 下载pthreads
    ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip

  2. 解压之后有3个文件夹:这里主要使用第1个Pre-built.2文件
    windows下QT配置pthread,解决main.obj:-1: error: LNK2019: 无法解析的外部符号 __imp_pthread_create,该符号在函数 main 中被引用

  3. Pre-built.2文件夹:主要用前三个目录下的文件
    windows下QT配置pthread,解决main.obj:-1: error: LNK2019: 无法解析的外部符号 __imp_pthread_create,该符号在函数 main 中被引用

  4. 将include文件夹中的三个文件复制到QT安装目录中对应的编译器include目录下,我这里是:

D:\ZIYUAN\Qt5.11.2\5.11.2\msvc2017_64\include
  1. 把lib文件夹中x64下的文件复制到对应的lib目录下(因为我用的是64位),我这里是:
D:\ZIYUAN\Qt5.11.2\5.11.2\msvc2017_64\lib
  1. 下面这部分是之前vc配置pthread时的操作
    把dll下的x64文件夹下的两个文件,即pthreadGC2.dll与pthreadVC2.dll拷贝到C:\Windows\System32下(用于64位程序的运行)
    把dll下的x86文件夹下的五个文件,拷贝到C:\Windows\SysWOW64下(用于32位程序的运行)
  2. 最后还要注意在代码中添加:
#pragma comment(lib, "pthreadVC2.lib")

参考:https://blog.csdn.net/qianchenglenger/article/details/16907821

ps:快要被QT搞死qaq,有问题欢迎讨论。。。