GCC + pthread
生活随笔
收集整理的這篇文章主要介紹了
GCC + pthread
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
多線程介紹
?
POSIX 1003.1-2001 定義了多線程編程的標準API。這個API就是廣為人知的pthreads。它的目的在于為跨平臺編寫多線程程序提供便利。
??
本文介紹了Linux 和 WIN32 平臺下的多線程程序的編寫方法
?==================================================================================================
Linux 系統對 pthreads 提供了良好的支持。一般地安裝完Linux系統后在/usr/include目錄下包含了 pthreads 的頭文件。在 /usr/lib 下面包含了pthread 的庫文件:libpthread.a 和 libpthread.so。其中libpthread.a 為靜態鏈接庫,libpthread.so為動態連接庫。
?在linux下編譯時需要增加 -lpthread
==================================================================================================
WIN32 threads 線程庫并不直接支持 pthreads,因此網絡上出現了POSIX Threads for Win32 的開源項目,為 WIN32 下開發 Pthreads 多線程程序提供了方便。
Pthreads for win32 的下載地址為:
1 ftp://sourceware.org/pub/pthreads-win32 ;
2 http://dl.dbank.com/c0ba0nemwz ;
最新版本為 2-8-10。下載pthreads-w32-2-8-0-release.exe 后運行解壓出三個目錄:pre-build.2 ?/ ?pthreads.2 ? / ? QueueUserAPCEx。Pthreads.2 里面包含了pthreads 的源代碼,可以利用該源代碼編譯出pthread的靜態庫,本文暫不討論。
我們主要關心pre-build.2 這個目錄。Pre-build.2 里面包含了include和 lib 分別包含了pthreads for win32 的頭文件和庫文件(包括靜態庫和動態連接庫)。
對于采用MinGW編譯器,需要把 pre-build.2/lib/libpthreadGCE2.a 復制到MinGW下的lib目錄中,同時還需要把 pre-build.2/include/pthread.h ,pre-build.2/include/sched.h ,pre-build.2/include/semaphore.h 頭文件復制到MinGW下的include目錄中。然后編譯程序,但是最終發布程序時需要附帶上 pre-build.2/lib/pthreadGC2.dll 動態連接庫。
?MinGW下載地址:http://dl.dbank.com/c0nwzab00y
下面是Eclipse3.7 + GCC4.6.1下的測試程序:
[cpp] view plaincopy
?
在Eclipse下編譯該程序時,需要添加 libpthreadGCE2.a 庫來編譯。
總結
以上是生活随笔為你收集整理的GCC + pthread的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用GDB命令行调试器调试C/C++程序
- 下一篇: gcc/g++ 链接库的编译与链接