Làm thế nào để cài đặt MinGW-w64 và MSYS2?


85

Tôi đang cố gắng xây dựng một số thư viện mã nguồn mở. Tôi cần hệ thống quản lý gói để dễ dàng tải xuống các phần phụ thuộc. Lúc đầu tôi đang sử dụng MinGW+MSYS. Nhưng các gói bao gồm có hạn. Có người bảo tôi nên dùng MinGW-w64 + MSYS2.

Tôi đã tải xuống mingw-w64-installtừ đây . Khi chạy nó báo lỗi sau. Làm thế nào để sửa chữa nó?

nhập mô tả hình ảnh ở đây

Và btw, từ MinGW-w64trang tải xuống, tôi thấy rất nhiều liên kết tải xuống. Ngay cả Cygwin cũng được liệt kê. Làm thế nào CygwinMinGW-w64có liên quan?

nhập mô tả hình ảnh ở đây

Hiểu biết hiện tại của tôi là, vào thời điểm đó MinGW+MSYS, MSYS chỉ là một addon tốt cho MinGW, trong khi MinGW-w64 + MSYS2MSYS2 là độc lập và MinGW-w64 chỉ là một bộ thư viện mà nó có thể hoạt động. Cũng giống như Cygwin có thể tải xuống nhiều gói khác nhau.

Câu trả lời:


197

Rất tiếc, trình cài đặt MinGW-w64 mà bạn đã sử dụng đôi khi gặp sự cố này. Bản thân tôi không chắc về lý do tại sao điều này xảy ra (tôi nghĩ rằng nó có liên quan đến chuyển hướng URL Sourceforge hoặc bất cứ điều gì mà trình cài đặt hiện không thể xử lý đủ đúng).

Tuy nhiên, nếu bạn đã có kế hoạch sử dụng MSYS2, thì không cần trình cài đặt đó.

  1. Tải xuống MSYS2 từ trang này (chọn 32 hoặc 64-bit tùy theo phiên bản Windows bạn sẽ sử dụng, không phải loại tệp thực thi bạn muốn xây dựng, cả hai phiên bản đều có thể xây dựng cả hai tệp nhị phân 32 và 64-bit).

  2. Sau khi quá trình cài đặt hoàn tất, hãy nhấp vào tùy chọn "MSYS2 Shell" mới được tạo dưới một trong hai MSYS2 64-bithoặc MSYS2 32-bittrong menu Bắt đầu. Cập nhật MSYS2 theo wiki (mặc dù tôi chỉ làm một pacman -Syu, bỏ qua tất cả các lỗi và đóng cửa sổ và mở một cửa sổ mới, điều này không được khuyến khích và bạn nên làm theo những gì trang wiki nói).

  3. Cài đặt chuỗi công cụ

    a) cho 32-bit:

    pacman -S mingw-w64-i686-gcc
    

    b) đối với 64-bit:

    pacman -S mingw-w64-x86_64-gcc
    
  4. cài đặt bất kỳ thư viện / công cụ nào bạn có thể cần. Bạn có thể tìm kiếm các kho lưu trữ bằng cách

    pacman -Ss name_of_something_i_want_to_install
    

    ví dụ

    pacman -Ss gsl
    

    và cài đặt bằng cách sử dụng

    pacman -S package_name_of_something_i_want_to_install
    

    ví dụ

    pacman -S mingw-w64-x86_64-gsl
    

    và từ đó thư viện GSL được trình biên dịch 64-bit MinGW-w64 của bạn tự động tìm thấy!

  5. Mở một trình bao MinGW-w64:

    a) Để xây dựng những thứ 32 bit, hãy mở "MinGW-w64 32-bit Shell"

    b) Để xây dựng những thứ 64 bit, hãy mở "MinGW-w64 64-bit Shell"

  6. Xác minh rằng trình biên dịch đang hoạt động bằng cách thực hiện

    gcc -v
    

Nếu bạn muốn sử dụng các công cụ (với các thư viện được cài đặt) bên ngoài môi trường MSYS2, tất cả những gì bạn cần làm là thêm <MSYS2 root>/mingw32/binhoặc <MSYS2 root>/mingw64/binvào của bạn PATH.


4
Cảm ơn. Làm cách nào để lấy tên chuẩn của gói pacmancó thể nhận ra?
smwikipedia

1
Nó sẽ hoạt động nếu bạn cài đặt đồng thời cả hai loại công cụ 32 và 64 bit?
Colonel Panic

2
@Colonel vâng, nó sẽ cài đặt các toolchains (và bất kỳ thư viện nào của bên thứ 3 mà bạn cài đặt) trong các thư mục riêng biệt (/ mingw32 và / mingw64).
rubenvb

5
Cảm ơn bạn rất nhiều @rubenvb. Msys2 wiki rất khó hiểu đối với những người như tôi về cách thực hiện vài bước đơn giản này.
Toby

1
@ Do đó, tôi đồng ý rằng họ sử dụng "Arch Way" để giải thích mọi thứ, tức là hãy đọc Arch wiki trên pacman và bạn sẽ biết gần giống nhau. Thiết lập dành cho người mới bắt đầu có thể hữu ích, mặc dù hiện tại nó đã có trên SO nên sẽ xuất hiện trên Google khá nhanh :). (đọc cái này là: cứ ủng hộ câu trả lời này: P)
rubenvb

38

MSYS đã lâu không được cập nhật, MSYS2 hoạt động nhiều hơn, bạn có thể tải xuống từ MSYS2 , nó có cả hai mingwcygwin forkgói.

Để cài đặt chuỗi công cụ MinGW-w64 ( Tham khảo ):

  1. Mở trình bao MSYS2 từ menu bắt đầu
  2. Chạy pacman -Sy pacmanđể cập nhật cơ sở dữ liệu gói
  3. Mở lại trình bao, chạy pacman -Syuđể cập nhật cơ sở dữ liệu gói và gói hệ thống lõi
  4. Mở lại trình bao, chạy pacman -Suđể cập nhật phần còn lại
  5. Cài đặt trình biên dịch:
    • Đối với mục tiêu 32-bit, hãy chạy pacman -S mingw-w64-i686-toolchain
    • Đối với mục tiêu 64 bit, hãy chạy pacman -S mingw-w64-x86_64-toolchain
  6. Chọn gói để cài đặt, mặc định là tất cả
  7. Bạn cũng có thể cần make, chạypacman -S make

3
Làm cách nào để cài đặt phiên bản MinGW-w64 cụ thể như thế x86_64-6.2.0-release-posix-seh-rt_v5-rev1nào?
Youda008

1
Điều đó có nghĩa là trình cài đặt mingw như được mô tả ở đây là không cần thiết nữa? và tôi chỉ nên cài đặt msys2?
lanoxx 17/02/17

1
Liên kết Referencebị hỏng
Jean-Francois T.

bất kỳ ý tưởng nào về lý do tại sao msys2 shell sẽ tự đóng sau một giây?
A_P

Trong trường hợp bạn cần cmake, bạn phải cài đặt pacman -S mingw-w64-x86_64-cmakeKHÔNG cmake . Cmake bình thường sẽ thiếu máy phát cho minGW.
user136036
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.