PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GCC in MinGW updaten


Gast
2015-01-05, 07:40:06
Hallo

Ich hab seit paar Jahren ein funktionierendes :) MinGW/msys (32bit) auf Win7-64 für die paar Projekte die ich mir selbst kompiliere.
Nach einer Anleitung installiert. Alles eine ziemlich Blackbox für mich, aber es tut wie es soll.

GCC ist 4.7.2. Ich würde nun das bestehende gerne damit updaten
http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/experimental/
MinGW/msys hab ich damals von dem gleichen path auf sourceforge geholt.

Als erstes möchte ich mir natürlich meine Blackbox nicht zerschiessen. Reicht es da c:\mingw irgendwohin zu klonen und wenn es explodieren sollte einfach zurück drüberbügeln?

Zum Update war der erste primitive Gedanke, das gcc-try-2 Archiv drüberzubügeln. Es stellte sich aber heraus, die Ordnerstruktur ist zwar 1:1 mit dem was in mingw schon installiert ist, die Dateinamen unterscheiden sich aber an mehreren Stellen.
So heißt es in c:\mingw\bin zb. "mingw32-gcc.exe", in dem try-2 Archiv heißt es "686-pc-mingw32-gcc.exe" usw. usw.

Jemand eine Idee wie ich das Update bewerkstelligen soll? Ausprobiert hab ich es noch nicht.

Exxtreme
2015-01-05, 12:57:08
Als erstes möchte ich mir natürlich meine Blackbox nicht zerschiessen. Reicht es da c:\mingw irgendwohin zu klonen und wenn es explodieren sollte einfach zurück drüberbügeln?
Sollte funktionieren, ja. AFAIK kommt Mingw ohne irgendwelche Registry-Hacks aus.

Zum Update war der erste primitive Gedanke, das gcc-try-2 Archiv drüberzubügeln. Es stellte sich aber heraus, die Ordnerstruktur ist zwar 1:1 mit dem was in mingw schon installiert ist, die Dateinamen unterscheiden sich aber an mehreren Stellen.
So heißt es in c:\mingw\bin zb. "mingw32-gcc.exe", in dem try-2 Archiv heißt es "686-pc-mingw32-gcc.exe" usw. usw.

Jemand eine Idee wie ich das Update bewerkstelligen soll? Ausprobiert hab ich es noch nicht.
Bügle es einfach drüber. Dann siehst du ob es funktioniert. Wirst aber vielleicht einige hartkodierte mingw32-gcc.exe-Einträge in deinen Projekten/make-Dateien durch den neuen Eintrag ersetzen müssen.

Aber wie gesagt, einfach ausprobieren. Und zur Not wieder ein Backup zurückspielen falls es nicht geht.

Ectoplasma
2015-01-06, 01:38:32
Lösche einfach den alten Ordner oder benenne ihn um und kopiere dir eine neue Version. Am besten einen MINGW, der auch 64 Bit compilieren kann und SEH hat. Installieren muss man dabei gar nichts, nur entpacken.

x86_64-4.9.2-release-win32-seh-rt_v3-rev1.7z (http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.2/threads-win32/seh/x86_64-4.9.2-release-win32-seh-rt_v3-rev1.7z/download)

Gast
2015-01-07, 00:26:22
Sieht gut aus. Ich schau mir auch das -64 MinGW an.

Danke euch beiden.

Gast
2015-01-07, 00:43:43
@Ectoplasma
Nö. Schnellschuss. Das funktioniert so nicht, weil msys fehlt. Ich hab damit keine Console.

Die paar Projekte kompiliere ich mir nur selbst. Ich hau die bis jetzt in einen Ordner nach
c:\MinGW\msys\1.0\home\(name)\
feuer c:\MinGW\msys\1.0\msys.bat ab, hab die Console und wechsel da den Pfad zu den Ordnern.

Dann kann ich alles machen um zu kompilieren (nach paar kleinen Anpassungen in den Sources der Projekte).

Ohne msys aber weiß ich garnicht wo ich anfangen sollte :(

Gast
2015-01-07, 00:58:28
Auch der Installer da ist was ganz anderes als das hier
http://sourceforge.net/projects/mingw/files/

Und lädt nicht die Datei die du verlinkt hast. Hat bis dahin aber auch keine Auswahl angeobten.

Exxtreme
2015-01-07, 08:35:55
Msys gibt es hier separat:

http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/

Gast
2015-01-07, 11:54:58
Danke. Was wäre jetzt das beste Vorgehen bei der Einrichtung? Nur die beiden Archive entpacken und eine Ordnerstruktur erstellen wie bei meinem alten MinGW? Funktioniert das dann auf Anhieb?

Der get-Installer fragte mich u.a. nach Posix oder Win32 Threads. Da die Projekte eigentlich multisystem sind und von Linux kommen, die Sources die ich nutze aber "w32" im Namen haben, bin ich schon gleich andieser Frage gescheitert :) :(

"basic" Archive von mingw/gcc und msys haben dafür gereicht. Wäre damit eine einfache 4-Punkte Anleitung - entpacke dies, entpacke das dahin und hinein - möglich oder wird es schwieriger?

Ectoplasma
2015-01-07, 16:21:53
Der get-Installer fragte mich u.a. nach Posix oder Win32 Threads.

Wenn du mit std::thread arbeiten möchtest, dann nimmst du die Posix Variante. Win 32 Threads enthalten von sich aus nicht die notwendigen APIs, um mit std::thread arbeiten zu können.

Was funktioniert an meinem Link nicht? Oder lags nur an MSYS? MSYS entpackst du separat, wie Exxtreme bereits beschrieben hat.

Bei mir sieht die Struktur so aus:

MinGW
---> mingw64
---> msys

Die Pfad Variable ist bei mir für beider Verzeichnisse auf mingw64/bin und msys/bin gelegt. Das wäre es eigentlich schon.

Achja, mingw darf nicht in einem Pfad liegen, in dem ein Leerzeichen enthalten ist.

Coda
2015-01-07, 23:33:03
Wenn du mit std::thread arbeiten möchtest, dann nimmst du die Posix Variante. Win 32 Threads enthalten von sich aus nicht die notwendigen APIs, um mit std::thread arbeiten zu können.
Se fuck? Wo hast du das denn her?

Edit: Ach so, das ist was MingW spezifisches. Ich dachte du meinst die generelle Win32-API.

Ectoplasma
2015-01-08, 12:11:12
Se fuck? Wo hast du das denn her?

Edit: Ach so, das ist was MingW spezifisches. Ich dachte du meinst die generelle Win32-API.

Ne, ne, hab mich auch erst gewundert, aber womöglich hatten die noch keine Zeit, std::thread vollständig mit Win32 zu implementieren.