C/C++ 學習日記2:使用多線程以及它的頭文件pthread.h時所遇到的一些麻煩

每每遇到bug,這意味着,要麼幾分鐘內解決,要麼耗費大量的時間和精力才能搞定

我將使用多線程時遇到的這些問題,以及解決方案總結了一下,藉此提醒自己。

1.怎麼使用多線程?

引用頭文件pthread.h,然後可以使用多線程方面的功能了。詳見MSDN或者自行百度

2.VS提示找不到pthread.h?

之前有人公佈過解決辦法,這裏貼上鍊接:點我跳轉

3.VS提示:編譯錯誤C2011 “timespec”:“struct”類型重定義

還是那個鏈接,在文章最下面。點我跳轉

4.VS提示:編譯錯誤C2011 “timespec”:“struct”類型重定義

可修改pthread.h文件,在
**#if !defined( PTHREAD_H )
#define PTHREAD_H**
下面加上一行宏定義
#define HAVE_STRUCT_TIMESPEC
可以解決“timespec”:“struct”類型重定義錯誤

5. 運行的時候提示:無法啓動此程序,因爲計算機中丟失pthreadVC2.dll

可以把pthread的文件解壓縮後,把Pre-built.2文件夾中的pthreadVC2.dll複製後放到C:\Windows\SysWOW64中(64位系統)

6.VS運行的時候提示:錯誤 1 error LNK2019: 無法解析的外部符號 __imp__pthread_create,該符號在函數 _main 中被引用

此時需要在代碼中加入
#pragma comment(lib, "pthreadVC2.lib")

這裏附上成功運行多線程的截圖:創建線程並讓它負責響應熱鍵事件。沒有多線程,它可能都沒辦法一邊運行程序一邊監視熱鍵,經測試,可以直接靜態編譯。
這裏寫圖片描述

對了,使用多線程完畢之後,別忘了使用關閉多線程的代碼啊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章