1. 程式人生 > >windows下QT配置pthread,解決main.obj:-1: error: LNK2019: 無法解析的外部符號 __imp_pthread_create,該符號在函式 main 中被引用

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. 解壓之後有3個資料夾:這裡主要使用第1個Pre-built.2檔案
    在這裡插入圖片描述

  2. Pre-built.2資料夾:主要用前三個目錄下的檔案
    在這裡插入圖片描述

  3. 將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")

ps:快要被QT搞死qaq,有問題歡迎討論。。。