GCC附帶了一個編譯器運行時庫( 宋體),它使用( 其中之一) 提供了一個用於在它的支持的語言中實現多線程相關功能的。 最相關的例子是 C++11 libstdc++ <thread>
,<mutex>
,<future>
, gcc時沒有一個完整的實現了其內部win32線程模型。 MinGW-w64提供了 winpthreads ( Win32多線程API之上的一個pthreads實現),GCC能夠連接它來啓用全部的奇妙特性。url
我必須強調這裏選項不容許你編寫任何你想要的代碼( 對於你能夠在代碼中調用的API,它有絕對的無影響) 。 它只反映了 (libgcc/libstdc++/...) 庫的使用了哪些運行時。 由 @James 引用的警告與gcc線程模型的內部無關,而是與microsoft實現的CRT有關。spa
總結:
posix
: 啓用 c++11/c11多線程功能。 使depend依賴於 libwinpthreads,這樣即便你不直接調用 API,你將分發 winpthreads 。 使用應用程序分發一個DLL沒有什麼問題。win32
: 沒有C++11多線程功能。
對任何調用 Win32 api或者 pthreads api的用戶代碼都不影響。 你能夠同時使用兩個。