C minGW Installation funktioniert nicht richtig

lckmi

Cadet 3rd Year
Registriert
Nov. 2015
Beiträge
32
servus,
ich will als compiler für c den mingw-compiler installieren. Bin also auf die seite gegangen, und bin nach der anleitung vorgegangen http://mingw.org/wiki/Getting_Started . Hab alles so gemacht wie dort geschrieben (auch das "C:\MinGW /mingw" in die fstab datei eingefügt) und hab mingw32-base und msys-base installiert.

So wenn ich aber nun in die konsole gcc eingebe, bekomm ich die meldung das es den befehl nicht gibt. Ich muss erst in der konsole den pfad zu C:/MinGW/bin/ wechseln, und dann gibt es erst den befehl gcc und ich kann dateien kompilieren (die dann aber auch im bin ordner sein müssen).

Wie bekomm ich es hin das der befehl "gcc" global verfügbar ist? Und wie bekomm ich die mingw shell?

achja betriebssystem ist windows 7/64bit.

danke!!!
 
Hast Du den Installer probiert?

Aber warum verwendest Du nicht einfach eine komplette IDE?
 
Hasu Du auch den folgenden Hinweis aus der Anleitung für Einsteiger umgesetzt?
"After installation you will need to perform some additional tasks yourself to ensure your MinGW applications will run. Most importantly, you will need to make changes to your PATH environment variable. Be careful: there are two PATH variables which can be changed, and changing the wrong one can have significant consequences. Instructions for changing the correct PATH variable are provided below."

Gruß, Nemo_G
 
lckmi schrieb:
Und wie bekomm ich die mingw shell?

Sowas nennt sich z.B. "bash" (bourne again shell). Mein Tipp:

  • den ganzen Kram wieder löschen
  • Pfade bereinigen
  • eine richtig gute bash für Windows installieren (64-bit Git for Windows Setup) und diese in einen vernünftigen Ordner (nicht-System) installieren (z.B. C:\Apps\Git o. ä.)
  • irgendeinen brauchbaren 64-bit-gcc von Hand installieren,z.B. TDM-gcc, z. B. nach C:\MinGW, so dass die ausführbaren Dateien in C:\MinGW\bin liegen (Achtung, richtige Compilerversion auswählen)
  • den Pfad C:\MinGW\bin entweder in Windows-Pfad einbauen - oder in der bash eine .bashrc mit beliebigem Pfad erzeugen

Du kannst dann noch andere "Tools" nach C:\MinGW" kopieren, die sind dann natürlich schon sichtbar, wenn der Pfad eingetragen wurde. Das "git" bei der Git-Bash kannst Du ignorieren, es ist die beste bash für Windows.
 
Nemo_G schrieb:
Hasu Du auch den folgenden Hinweis aus der Anleitung für Einsteiger umgesetzt?
"After installation you will need to perform some additional tasks yourself to ensure your MinGW applications will run. Most importantly, you will need to make changes to your PATH environment variable. Be careful: there are two PATH variables which can be changed, and changing the wrong one can have significant consequences. Instructions for changing the correct PATH variable are provided below."

Gruß, Nemo_G

Ja hab ich gemacht.

mein problem ist halt wie hier im video:
https://youtu.be/DHekr3EtDOA?t=4m46s
Ich hab das gemacht was der typ im video gemacht hat und ich hab das gemacht was hier steht http://mingw.org/wiki/Getting_Started

Also einmal den pfad ändern und das editieren von der fstab datei.

und es funktioniert immer noch nicht.. "Der Befehl gcc ist entweder falsch geschrieben oder konnte nicht gefunden werden"

Wir dürfen nur notepad++ als editor und mingw als compiler verwenden. Alles was ich hier aufm pc mach, muss auch exakt so auf dem pc in der uni laufen. deswegen will ich nichts anderes installieren außer notepad++ und mingw. Der compiler ist ja irgendwie auch richtig installiert und funktioniert. Ich kann also problemlos dateien kompilieren die in C:\MinGW\bin gespeichert sind und wenn ich in der konsole den pfad zu C:\MinGW\bin ändere und dann "gcc blablabla" eingebe.

Im grunde genommen erkennt die cmd den befehl gcc nicht global. aufm pc in der uni funktioniert normal. hab echt kein bock mehr auf den scheiß.
 
ich hab auch schon mingw gelöscht indem ich den ordner in C:\MinGW gelöscht habe und dann hab ich wieder die pakete installiert (also mingw32-base und msys-base). aber problem bleibt bestehen.

jetzt hab ich wahrscheinlich schon so die pfade zerstört das es überhaupt nicht mehr funktionieren kann.... und systemwiederherrstellung wäre auch nur noch auf den stand von vor 2 tagen möglich und da hat es auch schon nicht funktioniert. ich könnt echt austicken.

so mit bash und diesem rapidee weiß ich auch nicht. ich hab ka wie man die sachen macht die du beschreibst macht (@blöderidiot, also keine beleidigung sondern ich mein dein namen) und wie gesagt wir sollen nur mit mingw und notepad++ auskommen.

aber danke trotzdem für die antworten.

edit:
ich hab zuvor noch einen beitrag geschrieben, aber der wird erst von einem moderator freigeschalten. heut klappt echt nichts. weiß echt nicht wie ich auf die idee gekommen bin informatik zu studieren. wenn man es noch nicht mal gebacken kriegt den compiler zu installieren kann man sich doch grad erschießen
 
Zuletzt bearbeitet:
lckmi schrieb:
so mit bash und diesem rapidee weiß ich auch nicht. ich hab ka wie man die sachen macht die du beschreibst macht (@blöderidiot, also keine beleidigung sondern ich mein dein namen) und wie gesagt wir sollen nur mit mingw und notepad++ auskommen.

Ja genau!

Aber Du kannst im Notepad nicht den Kompiler starten, dazu brauchst Du eine Shell (z. B. bash o. ä.).

Folgendes:
  • RapidEE ist ein Windows-Tool um den Pfad aufzuräumen oder zu ergänzen. Das braucht man eigentlich immer.
  • Du erstellst in einem Verzeichnis (C:\Quelltexte) mit dem Noptepad einen C/C++-Quelltext, wie gefordert.
  • Dann klickst Du mit der rechten Maustaste auf dieses Verzeichnis und wählst "git bash starten" -> Du bekommst eine shell und kannst kompilieren:
    $> gcc -c meinquelltext.c -o programm.exe
    und starten:
    $> programm


Jetzt ungefähr klar? Versuch doch mal, das alles so zu machen. Das klappt. Frag mich nicht, wie ich angefangen habe ... :freak:
 
Zuletzt bearbeitet:
So https://www.computerbase.de/forum/t...tioniert-nicht-richtig.1528009/#post-18063843 mein Beitrag ist nun freigeschalten.

@blöderidiot Also folgendermaßen:
Ich hab das system nun auf den 30.10 zurückgesetzt und dann git installiert. Wenn ich nun in dem verzeichnis von meiner .c datei (in dem fall einfach hello world programm) "git bash here" mache und dann die .c datei kompiliere erscheint nun die fehlermeldung:
fatal error: stdio.h: No such file or directory compilation terminated
Der erkennt also die header-datei nicht an....

Wenn ich einfach nur den befehl gcc eingebe kommt die meldung:
no input files, compilation terminated
Das heißt jetzt erkennt die konsole den compiler, aber es fehlt wohl die verbindung zur header datei (der linker arbeitet nicht richtig oder wie man sowas nennt).

Über die normale windows konsole (also cmd) ist es das gleiche.
 
lckmi schrieb:
Das heißt jetzt erkennt die konsole den compiler, aber es fehlt wohl die verbindung zur header datei (der linker arbeitet nicht richtig oder wie man sowas nennt).

Ah, es wird ....

Was sagt (in der bash):
$> which gcc

und
$> gcc -v



Welchen Kompiler genau hast Du woher und wohin installiert? Und wie genau sieht Dein Quelltext aus?
 
which gcc:
/c/Users/abc/AppData/Local/Programs/minghc-7.10.2-x86_64/ghc-7.10.2/mingw/bin/gcc

gcc -v
Using built-in specs.
COLLECT_GCC=C:\Users\abc\AppData\Local\Programs\minghc-7.10.2-x86_64\ghc-7.10.2\mingw\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/users/abc/appdata/local/programs/minghc-7.10.2-x86_64/ghc-7.10.2/mingw/bin/../libexec/gcc/x86_64-w64-mingw32/4.6.3/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: /home/ruben/mingw-w64/toolchain/src/gcc/configure --host=x86_64-w64-mingw32 --build=x86_64-linux-gnu --target=x86_64-w64-mingw32 --with-sysroot=/home/ruben/mingw-w64/toolchain/mingw64mingw64/mingw64 --prefix=/home/ruben/mingw-w64/toolchain/mingw64mingw64/mingw64 --with-libiconv-prefix=/home/ruben/mingw-w64/toolchain/mingw64mingw64/prereq_install --with-gmp=/home/ruben/mingw-w64/toolchain/mingw64mingw64/prereq_install --with-mpfr=/home/ruben/mingw-w64/toolchain/mingw64mingw64/prereq_install --with-mpc=/home/ruben/mingw-w64/toolchain/mingw64mingw64/prereq_install --with-ppl=/home/ruben/mingw-w64/toolchain/mingw64mingw64/prereq_install --with-cloog=/home/ruben/mingw-w64/toolchain/mingw64mingw64/prereq_install --enable-cloog-backend=isl --with-host-libstdcxx='-static -lstdc++ -lm' --enable-shared --enable-static --enable-threads=win32 --disable-multilib --enable-plugins --enable-languages=c,lto,c++,objc,obj-c++,fortran,java --enable-libgomp --enable-libstdcxx-debug --enable-sjlj-exceptions --enable-fully-dynamic-string --disable-nls --disable-werror --enable-checking=release --with-pkgversion=rubenvb-4.6.3 --with-bug-url=mingw-w64-public@lists.sourceforge.net --disable-win32-registry --disable-rpath --disable-werror CFLAGS='-O2 -mtune=corei7 -fomit-frame-pointer -momit-leaf-frame-pointer -fgraphite-identity -floop-interchange -floop-block -floop-parallelize-all' LDFLAGS=
Thread model: win32
gcc version 4.6.3 (rubenvb-4.6.3)
 
lckmi schrieb:
which gcc:
/c/Users/abc/AppData/Local/Programs/minghc-7.10.2-x86_64/ghc-7.10.2/mingw/bin/gcc

Hmmm, was hast Du da gemacht ? ;)

Bei mir:
$ which gcc
/c/MinGW64/bin/gcc



$ gcc -v
Using built-in specs.
COLLECT_GCC=C:\MinGW64\bin\gcc.exe
COLLECT_LTO_WRAPPER=C:/MinGW64/bin/../libexec/gcc/x86_64-w64-mingw32/5.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-5.1.0/configure --build=x86_64-w64-mingw32 --enable-targets=all --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --enable-libgomp --enable-lto --enable-graphite --enable-cxx-flags=-DWINPTHREAD_STATIC --disable-build-with-cxx --disable-build-poststage1-with-cxx --enable-libstdcxx-debug --enable-threads=posix --enable-version-specific-runtime-libs --enable-fully-dynamic-string --enable-libstdcxx-threads --enable-libstdcxx-time --with-gnu-ld --disable-werror --disable-nls --disable-win32-registry --prefix=/mingw64tdm --with-local-prefix=/mingw64tdm --with-pkgversion=tdm64-1 --with-bugurl=http://tdm-gcc.tdragon.net/bugs
Thread model: posix
gcc version 5.1.0 (tdm64-1)


Ich habe also einen 64-bit TDM-GCC-5 in C:\MinGW64\bin\ installiert. In meiner git-bash habe ich dann noch eine datei ~/.bash_profile mit folgendem Inhalt (reduzierter Pfad) angelegt:

PATH=/mingw64/bin:/usr/bin/:/bin:/cmd:/c/MinGW64/bin

Wenn ich jetzt eine Datei:
Code:
#include <stdio.h>

int main(int argc, char *argv[])
{
 printf("Hello World!");
 return 0;
}
wie folgt kompiliere:
gcc hello.c -o hello

erhalte ich hello.exe mit der Ausgabe:
$ ./hello.exe
Hello World!​

Irgendwas ist schiefgelaufen, vor allem bei Deiner Kompilerinstallation. Warum nicht nach "C:\MinGW" oder so installieren?
 
Äh keine Ahnung. Ich hab alles exakt nach der anleitung gemacht http://mingw.org/wiki/Getting_Started

Das blöde ist, das es nun noch nicht mal mehr funktioniert dateien in C:\MinGW\bin zu kompilieren.. (no such file or directory found).

Irgendwie glaub ich, dass ich windows neu installieren muss.
 
lckmi schrieb:
Äh keine Ahnung. Ich hab alles exakt nach der anleitung gemacht http://mingw.org/wiki/Getting_Started

Windows nicht "neu installieren". Glaub mir, Du mußt generell erstmal
  • verstehen, was auf Deinem Rechner wo installiert ist und warum,
  • was gesetzte Pfade (PATH) und deren Reihenfolge für eine Auswirkung haben.

Warum willst Du denn "Informatiker" werden? Das sind die Leute, die sich auskennen und nicht die Leute, die jede Woche neue Spiele kaufen oder Windows neu installieren, wenn das DVD-Laufwerk klemmt ;)

Warte mal, wenn reguläre Ausdrücke drankommen ;)
 
joa windows hab ich jetzt trotzdem mal neu installiert. hat natürlich nichts gebracht xD

Na ja ich hab jetzt halt mingw installiert (mit mingw32-base und msys als pakete). Der befehl gcc wird immer noch nicht global erkannt, sondern nur im bin ordner. Wie krieg ichs denn nun hin das die konsole den pfad zum compiler erkennt, ohne das ich manuel da hinnavigieren muss? http://mingw.org/wiki/Getting_Started Im letzten abschnitt "Environment Settings" wird ja erklärt wie man den pfad unter computer/eigenschaften/umgebungsvariablen eingibt, aber ich hab da keine spalte PATH.

ich hab auch nicht mehr groß zeit mehr mich damit rumzuärgern. ich hab noch dröftausend andere hausaufgaben auf.. diggah studium ist stress pur.
 
lckmi schrieb:
joa windows hab ich jetzt trotzdem mal neu installiert. hat natürlich nichts gebracht xD

OK, Schritt für Schritt:
1) Installiere mal bitte eine bash, und zwar diesen Link für 64 bit.
Beachten:
- in ein eigenes Verzeichnis installieren ("C:\Apps\Git")
- "Use git from bash only"

Mach mal bitte und melde Dich, wenn Du das so gemacht hast ;)
 
lckmi schrieb:

Gut, jetzt den MinGW- (TDM-)GCC-x64 runterladen und in das Ding explizit nach C:\MinGW64\ installieren, so dass ein u.a. Verzeichnis "C:\MinGW64\bin" entsteht.

In der Zwischenzeit:

  • eine bash shell öffnen
  • mit "cd" (nur cd eingeben) in das Homeverzeichnis wechseln (was sagt "pwd" in diesem Verzeichnis?)
  • dort eine Datei .bash_profile anlegen durch Eingabe von: vi .bash_profile
  • noch in vi (Unix-Editor) dann "i" drücken (insert) und jetzt reinschreiben:
    PATH=/mingw64/bin:/usr/bin/:/bin:/cmd:/c/MinGW64/bin
    dann Escape-Taste drücken, dann ':x' (doppelpunkt und x) eingeben. Fertig. Bash schliessen.
  • Bash-shell wieder öffnen und hier melden was
    $> set|grep PATH
    ausgibt.
Es wird ... ;)
 
Zuletzt bearbeitet:
brauch ich denn den tdm gcc? denn ich hab doch schon den gcc compiler installiert (der ist ja im mingw32-base paket mit drin) und ich kann ja schließlich auch dateien kompilieren (die .c dateien müssen dann halt im bin ordner sein). nicht wenn dann im bin ordner auf einmal dann zwei compiler sind und dann funktioniert gar nichts mehr.

was meinst du mit homeverzeichnis? einfach mein benutzerverzeichnis? dann sagt pwd:
/c/Users/abc
 
lckmi schrieb:
brauch ich denn den tdm gcc? denn ich hab doch schon den gcc compiler installiert (der ist ja im mingw32-base paket mit drin) und ich kann ja schließlich auch dateien kompilieren (die .c dateien müssen dann halt im bin ordner sein). nicht wenn dann im bin ordner auf einmal dann zwei compiler sind und dann funktioniert gar nichts mehr.
Schmeiss am besten den mingw32-base-Kram und alles erstmal komplett runter, das brauchst Du nicht. Wenn Du's drauflassen möchtest: auch ok., da Du diese Sachen ja sicher nicht in C:\MinGW64 installiert hast, oder. Die alte Installation bleibt dann gänzlich unberührt. Versuchs doch mal ;)

was meinst du mit homeverzeichnis? einfach mein benutzerverzeichnis? dann sagt pwd:
/c/Users/abc

Genau! Dort erzeugst Du die .bash_profile
 
Zurück
Oben