2012-11-03 38 views
11

Tôi muốn tải xuống phiên bản mới nhất hiện có của gcc 4.7.2 trình biên dịch cho cửa sổ.
Khi tôi đã để page này, nơi tôi đã phải thấy một liên kết tải về, tôi phải đối mặt với hai loại:Whats sự khác biệt giữa thread_posixs và thread_win32 trong cổng gcc của windows?

  1. đề-posix
  2. đề-win32

Whats sự khác biệt giữa các hai?
Có phải chúng chỉ triển khai luồng không? Ý tôi là chúng chỉ khác nhau về cách chúng được triển khai và kết quả cuối cùng (các lớp, cách sử dụng chúng, vv) vẫn giữ nguyên?
Hay chúng áp đặt một kiểu mã hóa cụ thể?

Trả lời

18

Vì vậy, liên kết bạn cung cấp dẫn đến xây dựng gcc độc lập 4.7.2 cho cửa sổ, a.k.a mingw64. Để xây dựng trình biên dịch này, một tập hợp các tập lệnh được sử dụng, giúp xác định các tùy chọn biên dịch. Các kịch bản đơn giản được gọi là MinGW-xây dựng, và có thể được tìm thấy ở những nơi khác nhau:

Các kịch bản có một tùy chọn mà chỉ ra chủ đề mô hình được sử dụng cho std :: đề một phần của tiêu chuẩn C++ 11 (được phép cho MinGW nhờ áp dụng experimental patch trên phiên bản GCC). Trong một trường hợp, API chuỗi win32 được sử dụng và trong trường hợp khác, API posix được sử dụng.

Lưu ý rằng Windows không hỗ trợ tất cả API POSIX ra khỏi hộp, do đó một số thư viện mô phỏng bên ngoài cần phải được sử dụng (winpthreads).

Tập lệnh cấu hình nguồn GCC có tùy chọn chỉ định API (--enable-threads =) và đó là những gì được sử dụng trong các tập lệnh xây dựng.

Nói tóm lại, đối với phiên bản này của mingw, việc phát hành bài-posix sẽ sử dụng API posix và cho phép sử dụng std :: chủ đề, và đề-win32 sẽ sử dụng API win32, và vô hiệu hóa std :: phần luồng của tiêu chuẩn.

+2

Để hoàn thành (vì nó chỉ hoạt động cho 5.3.0 trở lên), https://github.com/meganz/mingw-std-threads làm cho nó có thể sử dụng std :: thread với mô hình luồng win32. –

Các vấn đề liên quan