Wie installiere ich MinGW-w64 und MSYS2?

83

Ich versuche eine Open Source Bibliothek aufzubauen. Ich benötige ein Paketverwaltungssystem, um die Abhängigkeiten einfach herunterladen zu können. Zuerst benutze ich MinGW+MSYS. Die enthaltenen Pakete sind jedoch begrenzt. Jemand hat mir gesagt, ich soll es benutzen MinGW-w64 + MSYS2.

Ich habe das mingw-w64-installvon hier heruntergeladen . Beim Ausführen wird der folgende Fehler gemeldet. Wie man es repariert?

Geben Sie hier die Bildbeschreibung ein

Übrigens MinGW-w64sehe ich auf der Download-Seite viele Download-Links. Sogar Cygwin ist gelistet. Wie Cygwinund MinGW-w64sind verwandt?

Geben Sie hier die Bildbeschreibung ein

Mein derzeitiges Verständnis ist, dass MinGW+MSYSMSYS in der Zeit von nur ein nettes Addon zu MinGW ist, während MinGW-w64 + MSYS2MSYS2 eigenständig ist und MinGW-w64 nur eine Reihe von Bibliotheken ist, mit denen es arbeiten kann. Genau wie Cygwin viele verschiedene Pakete herunterladen kann.

smwikipedia
quelle

Antworten:

195

Leider hat das von Ihnen verwendete MinGW-w64-Installationsprogramm manchmal dieses Problem. Ich selbst bin mir nicht sicher, warum dies passiert (ich denke, es hat etwas mit der URL-Umleitung von Sourceforge zu tun oder was auch immer das Installationsprogramm derzeit nicht richtig genug handhaben kann).

Wenn Sie bereits MSYS2 verwenden möchten, ist dieses Installationsprogramm nicht erforderlich.

  1. Laden Sie MSYS2 von dieser Seite herunter (wählen Sie 32 oder 64-Bit, je nachdem, auf welcher Windows-Version Sie es verwenden möchten, und nicht, welche Art von ausführbaren Dateien Sie erstellen möchten. Beide Versionen können sowohl 32- als auch 64-Bit-Binärdateien erstellen).

  2. Klicken Sie nach Abschluss der Installation auf die neu erstellte Option "MSYS2 Shell" unter MSYS2 64-bitoder MSYS2 32-bitim Startmenü. Aktualisieren Sie MSYS2 gemäß dem Wiki (obwohl ich nur a mache pacman -Syu, alle Fehler ignoriere und das Fenster schließe und ein neues öffne, wird dies nicht empfohlen und Sie sollten tun, was auf der Wiki-Seite steht).

  3. Installieren Sie eine Toolchain

    a) für 32-Bit:

    pacman -S mingw-w64-i686-gcc
    

    b) für 64-Bit:

    pacman -S mingw-w64-x86_64-gcc
    
  4. Installieren Sie alle Bibliotheken / Tools, die Sie möglicherweise benötigen. Sie können die Repositorys durchsuchen, indem Sie dies tun

    pacman -Ss name_of_something_i_want_to_install
    

    z.B

    pacman -Ss gsl
    

    und installieren mit

    pacman -S package_name_of_something_i_want_to_install
    

    z.B

    pacman -S mingw-w64-x86_64-gsl
    

    und von da an wird die GSL-Bibliothek automatisch von Ihrem MinGW-w64 64-Bit-Compiler gefunden!

  5. Öffnen Sie eine MinGW-w64-Shell:

    a) Um 32-Bit-Objekte zu erstellen, öffnen Sie die "MinGW-w64 32-Bit-Shell".

    b) Um 64-Bit-Objekte zu erstellen, öffnen Sie die "MinGW-w64 64-Bit-Shell".

  6. Stellen Sie sicher, dass der Compiler funktioniert

    gcc -v
    

Wenn Sie die Toolchains (mit installierten Bibliotheken) außerhalb der MSYS2-Umgebung verwenden möchten, müssen Sie nur hinzufügen <MSYS2 root>/mingw32/binoder <MSYS2 root>/mingw64/binzu Ihrer hinzufügen PATH.

rubenvb
quelle
4
Vielen Dank. Wie kann ich den kanonischen Namen eines Pakets erhalten, pacmandas erkennen kann?
Smwikipedia
1
Funktioniert es, wenn Sie gleichzeitig 32- und 64-Bit-Toolchains installieren?
Colonel Panic
2
@Colonel Ja, die Toolchains (und alle von Ihnen installierten Bibliotheken von Drittanbietern) werden in separaten Verzeichnissen (/ mingw32 und / mingw64) installiert.
Rubenvb
4
Vielen Dank @rubenvb. Das msys2-Wiki ist für Noobs wie mich so verwirrend, wie man diese paar einfachen Schritte macht.
Toby
1
@Toby Ich bin damit einverstanden, dass sie "den Bogenweg" nehmen, um Dinge zu erklären, dh das Bogen-Wiki auf Pacman lesen und Sie würden fast das gleiche wissen. Das Setup eines Anfängers könnte nützlich sein, obwohl es jetzt auf SO ist, was bei Google ziemlich schnell auftauchen sollte :). (Lesen Sie dies als: stimmen Sie diese Antwort weiter ab: P)
rubenvb
34

MSYS wurde lange nicht aktualisiert, MSYS2 ist aktiver, Sie können es von MSYS2 herunterladen , es hat beides mingwund ein cygwin forkPaket.

So installieren Sie die MinGW-w64-Toolchain ( Referenz ):

  1. Öffnen Sie die MSYS2-Shell über das Startmenü
  2. Ausführen pacman -Sy pacman, um die Paketdatenbank zu aktualisieren
  3. Öffnen Sie die Shell erneut und führen Sie sie aus pacman -Syu, um die Paketdatenbank und die Kernsystempakete zu aktualisieren
  4. Öffnen Sie die Shell erneut und führen Sie sie aus pacman -Su, um den Rest zu aktualisieren
  5. Compiler installieren:
    • Führen Sie für ein 32-Bit-Ziel aus pacman -S mingw-w64-i686-toolchain
    • Führen Sie für ein 64-Bit-Ziel aus pacman -S mingw-w64-x86_64-toolchain
  6. Wählen Sie aus, welches Paket installiert werden soll. Standard ist all
  7. Möglicherweise müssen Sie auch makeausführenpacman -S make
Steely Wing
quelle
3
Wie installiere ich eine bestimmte MinGW-w64-Version wie x86_64-6.2.0-release-posix-seh-rt_v5-rev1?
Youda008
1
Bedeutet das, dass der hier beschriebene mingw-Installer nicht mehr benötigt wird? und ich sollte nur msys2 installieren?
Lanoxx
1
Link Referenceist unterbrochen
Jean-Francois T.
Irgendwelche Ideen, warum sich die msys2-Shell nach einer Sekunde schließen würde?
A_P
Falls Sie cmake benötigen, müssen Sie installieren pacman -S mingw-w64-x86_64-cmakeund NICHT cmake . Normalem cmake fehlen Generatoren für minGW.
user136036