Thứ nhất, một số quan niệm sai lầm:
MinGW (.org) không cung cấp một phiên bản 64-bit của thời gian chạy của nó. MinGW-w64, ngoài CRT 32 bit của chúng. Họ cũng đang làm việc hỗ trợ ARM. Và hỗ trợ các API bổ sung khác nhau (Win32 và các API khác).
Cygwin < -> MinGW-w64: Cygwin không sử dụng MS CRT (msvcrt.dll). Thay vào đó, nó chèn một lớp tương thích POSIX vào giữa ứng dụng Cygwin của bạn và các thư viện hệ điều hành của hệ thống (kernel32.dll, ntdll.dll, vv), cụ thể là cygwin1.dll.
On cho câu hỏi sau đó ...
tôi đã tìm thấy các trình biên dịch MinGW-w64 rất tốt, và GCC 4.6 trở lên (trên thực tế, 4.5.1 trở lên) là rất có khả năng sản xuất tốt Mã 64 bit cho Windows. Hãy nhớ rằng MinGW cung cấp cơ bản cùng một API C như msvcrt.dll, vì vậy hãy truy cập msdn.com để xem tài liệu (và chắc chắn xem phiên bản tài liệu "MSVC++ 2003", một số chức năng khác với các thời gian chạy mới hơn), không nghĩ rằng vì nó là GCC, tài liệu glibc đột nhiên áp dụng cho Windows. Mã của bạn sẽ phải là nền tảng chéo. Cũng lưu ý rằng sizeof(long)!=sizeof(T*)
trên x64 Windows. Một lỗi thường gặp khi chuyển mã * nix hoặc x86 Windows sang x64 Windows.
Trừ khi có lỗi trong phần dành riêng cho Windows của thư viện chuẩn và các thư viện khác, tôi cho rằng mã sẽ giống hệt nhau (ngoại trừ "quy ước gọi điện"). –