จะติดตั้ง MinGW-w64 และ MSYS2 ได้อย่างไร?


88

ฉันกำลังพยายามสร้างไลบรารีโอเพนซอร์ส ฉันต้องการระบบจัดการแพ็คเกจเพื่อดาวน์โหลดการอ้างอิงได้อย่างง่ายดาย ตอนแรกฉันใช้MinGW+MSYS. แต่แพ็กเกจรวมมีจำนวน จำกัด มีคนบอกให้ใช้MinGW-w64 + MSYS2.

ฉันดาวน์โหลดmingw-w64-installจากที่นี่ เมื่อทำงานจะรายงานข้อผิดพลาดต่อไปนี้ ต้องแก้ไขอย่างไร?

ใส่คำอธิบายภาพที่นี่

และ btw จากMinGW-w64หน้าดาวน์โหลดฉันเห็นลิงค์ดาวน์โหลดมากมาย แม้แต่ Cygwin ก็อยู่ในรายการ วิธีCygwinและMinGW-w64มีความสัมพันธ์?

ใส่คำอธิบายภาพที่นี่

ความเข้าใจปัจจุบันของฉันคือในช่วงเวลาของMinGW+MSYSMSYS เป็นเพียงส่วนเสริมที่ดีสำหรับ MinGW ในขณะที่MinGW-w64 + MSYS2MSYS2 เป็นแบบสแตนด์อโลนและ MinGW-w64 เป็นเพียงชุดของไลบรารีที่สามารถใช้งานได้ เช่นเดียวกับ Cygwin สามารถดาวน์โหลดแพ็กเกจต่างๆได้มากมาย

คำตอบ:


201

น่าเสียดายที่โปรแกรมติดตั้ง MinGW-w64 ที่คุณใช้บางครั้งมีปัญหานี้ ตัวฉันเองไม่แน่ใจว่าทำไมสิ่งนี้ถึงเกิดขึ้น (ฉันคิดว่ามันมีส่วนเกี่ยวข้องกับการเปลี่ยนเส้นทาง URL Sourceforge หรืออะไรก็ตามที่ตัวติดตั้งไม่สามารถจัดการได้อย่างถูกต้องเพียงพอในขณะนี้)

อย่างไรก็ตามหากคุณวางแผนที่จะใช้ MSYS2 อยู่แล้วก็ไม่จำเป็นต้องมีโปรแกรมติดตั้งนั้น

  1. ดาวน์โหลด MSYS2 จาก หน้านี้ (เลือก 32 หรือ 64 บิตตามเวอร์ชันของ Windows ที่คุณจะใช้ไม่ใช่ประเภทของไฟล์ปฏิบัติการที่คุณต้องการสร้างทั้งสองเวอร์ชันสามารถสร้างไบนารี 32 และ 64 บิตได้)

  2. หลังจากการติดตั้งเสร็จสิ้นให้คลิกที่ตัวเลือก "MSYS2 Shell" ที่สร้างขึ้นใหม่ภายใต้ข้อใดข้อหนึ่ง MSYS2 64-bitหรือMSYS2 32-bitในเมนูเริ่ม อัปเดต MSYS2 ตามวิกิ (แม้ว่าฉันจะทำเพียงแค่pacman -Syuละเว้นข้อผิดพลาดทั้งหมดและปิดหน้าต่างและเปิดใหม่ไม่แนะนำให้ทำเช่นนี้และคุณควรทำตามที่หน้าวิกิกล่าว)

  3. ติดตั้ง toolchain

    ก) สำหรับ 32 บิต:

    pacman -S mingw-w64-i686-gcc
    

    b) สำหรับ 64 บิต:

    pacman -S mingw-w64-x86_64-gcc
    
  4. ติดตั้งไลบรารี / เครื่องมือที่คุณอาจต้องการ คุณสามารถค้นหาที่เก็บได้โดยทำ

    pacman -Ss name_of_something_i_want_to_install
    

    เช่น

    pacman -Ss gsl
    

    และติดตั้งโดยใช้

    pacman -S package_name_of_something_i_want_to_install
    

    เช่น

    pacman -S mingw-w64-x86_64-gsl
    

    และจากนั้นในไลบรารี GSL จะพบโดยอัตโนมัติโดยคอมไพเลอร์ MinGW-w64 64 บิตของคุณ!

  5. เปิดเชลล์ MinGW-w64:

    a) ในการสร้างสิ่ง 32 บิตให้เปิด "MinGW-w64 32-bit Shell"

    b) ในการสร้างสิ่ง 64 บิตให้เปิด "MinGW-w64 64-bit Shell"

  6. ตรวจสอบว่าคอมไพเลอร์กำลังทำงานโดยทำ

    gcc -v
    

หากคุณต้องการใช้ toolchains (พร้อมกับไลบรารีที่ติดตั้ง) นอกสภาพแวดล้อม MSYS2 สิ่งที่คุณต้องทำคือเพิ่ม<MSYS2 root>/mingw32/binหรือ<MSYS2 root>/mingw64/binในPATHไฟล์.


4
ขอบคุณ. ฉันจะได้รับชื่อมาตรฐานของแพ็คเกจที่pacmanสามารถจดจำได้อย่างไร
smwikipedia

1
จะใช้งานได้หรือไม่หากคุณติดตั้งห่วงโซ่เครื่องมือทั้ง 32 และ 64 บิตพร้อมกัน
พันเอก Panic

2
@Colonel ใช่มันจะติดตั้ง Toolchains (และไลบรารีของบุคคลที่สามที่คุณติดตั้ง) ในไดเร็กทอรีแยกต่างหาก (/ mingw32 และ / mingw64)
rubenvb

5
ขอบคุณมาก @rubenvb. วิกิ msys2 นั้นสร้างความสับสนให้กับ noobs อย่างฉันในการทำตามขั้นตอนง่ายๆเหล่านี้
Toby

1
@Toby ฉันยอมรับว่าพวกเขาใช้ "the Arch Way" ในการอธิบายสิ่งต่าง ๆ เช่นอ่าน Arch wiki เกี่ยวกับ pacman และคุณก็รู้เกือบเหมือนกัน การตั้งค่าของผู้เริ่มต้นอาจมีประโยชน์แม้ว่าตอนนี้จะอยู่ใน SO ซึ่งควรเปิดใช้งาน Google ค่อนข้างเร็ว :) (อ่านว่า: ให้โหวตคำตอบนี้ต่อไป: P)
rubenvb

38

MSYS ไม่ได้รับการอัปเดตเป็นเวลานาน MSYS2 มีการใช้งานมากขึ้นคุณสามารถดาวน์โหลดได้จากMSYS2มีทั้งmingwและcygwin forkแพ็คเกจ

ในการติดตั้ง MinGW-w64 toolchain ( อ้างอิง ):

  1. เปิด MSYS2 เชลล์จากเมนูเริ่ม
  2. วิ่ง pacman -Sy pacmanเพื่ออัปเดตฐานข้อมูลแพ็กเกจ
  3. เปิดเชลล์อีกครั้งเรียกใช้ pacman -Syuเพื่ออัปเดตฐานข้อมูลแพ็กเกจและแพ็กเกจระบบหลัก
  4. เปิดเชลล์อีกครั้งเรียกใช้ pacman -Suเพื่ออัปเดตส่วนที่เหลือ
  5. ติดตั้งคอมไพเลอร์:
    • สำหรับเป้าหมาย 32 บิตให้เรียกใช้ pacman -S mingw-w64-i686-toolchain
    • สำหรับเป้าหมาย 64 บิตให้เรียกใช้ pacman -S mingw-w64-x86_64-toolchain
  6. เลือกแพ็คเกจที่จะติดตั้งค่าเริ่มต้นคือทั้งหมด
  7. คุณอาจต้องการmakeเรียกใช้pacman -S make

3
ฉันจะติดตั้ง MinGW-w64 เวอร์ชันเฉพาะได้x86_64-6.2.0-release-posix-seh-rt_v5-rev1อย่างไร
Youda008

1
หมายความว่าการติดตั้ง MinGW ตามที่อธิบายไว้ที่นี่ไม่จำเป็นอีกต่อไป? และฉันควรจะติดตั้ง msys2?
lanoxx

1
ลิงก์Referenceเสีย
Jean-Francois T.

ความคิดใด ๆ เกี่ยวกับสาเหตุที่ msys2 shell ปิดตัวเองหลังจากผ่านไปหนึ่งวินาที
A_P

1
ในกรณีที่คุณต้องการ cmake คุณต้องติดตั้งpacman -S mingw-w64-x86_64-cmakeและ cmakeไม่ cmake ปกติจะไม่มีเครื่องกำเนิดไฟฟ้าสำหรับ minGW
user136036
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.