C minGW Installation funktioniert nicht richtig

Ok das gibt dieses set grep aus:
ACLOCAL_PATH=/mingw64/share/aclocal:/usr/share/aclocal
COMPLETION_PATH='C:\Program Files\Git\mingw64/share/git/completion'
EXEPATH='C:\Program Files\Git'
GIT_EXEC_PATH='C:\Program Files\Git\mingw64/libexec/git-core'
HOMEPATH='\Users\abc'
INFOPATH=/usr/local/info:/usr/share/info:/usr/info:/share/info:
MANPATH=/mingw64/share/man:/usr/local/man:/usr/share/man:/usr/man:/share/man:
MSYS2_PATH=/usr/local/bin:/usr/bin:/bin
PATH=/mingw64/bin:/usr/bin/:/bin:/cmd:/c/MinGW64/bin
PATHEXT='.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC'
PKG_CONFIG_PATH=/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig
 
lckmi schrieb:
Ok das gibt dieses set grep aus:
EXEPATH='C:\Program Files\Git'
HOMEPATH='\Users\abc'
PATH=/mingw64/bin:/usr/bin/:/bin:/cmd:/c/MinGW64/bin

Uups, Du hast git-bash in ein von Windows verwaltetes Verzeichnis (C:\Programme\ => C:\Program Files\) mit Leerzeichen installiert. Wie konnte das passieren? Schmeiss mal wieder runter und installiere in C:\Apps\Git oder so. Ansonsten: O.K.! ;)

Was sagt
"wich gcc" in der bash? geht "gcc -v"?
 
So jetzt gibt set grep das aus:
ACLOCAL_PATH=/mingw64/share/aclocal:/usr/share/aclocal
COMPLETION_PATH='C:\Apps\Git\mingw64/share/git/completion'
EXEPATH='C:\Apps\Git'
GIT_EXEC_PATH='C:\Apps\Git\mingw64/libexec/git-core'
HOMEPATH='\Users\abc'
INFOPATH=/usr/local/info:/usr/share/info:/usr/info:/share/info:
MANPATH=/mingw64/share/man:/usr/local/man:/usr/share/man:/usr/man:/share/man:
MSYS2_PATH=/usr/local/bin:/usr/bin:/bin
PATH=/mingw64/bin:/usr/bin/:/bin:/cmd:/c/MinGW64/bin
PATHEXT='.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC'
PKG_CONFIG_PATH=/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig

und which gcc:
/c/MinGW64/bin/gcc

und 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)
 
lckmi schrieb:
So jetzt gibt set grep das aus:

Perfekt! ;)

Jetzt kopiere mal bitte das hello.c von oben in ein Verzeichnis und mache in der bash:
gcc hello.c -o hello

und
./hello

das './' brauchst Du noch, weil '.' (das aktuelle Verzeichnis) in der bash noch nicht im Suchpfad ist. Du kannst das aber in der .bash_profile in Deinem home-Verzeichnis noch hinten anfügen:
PATH=/mingw64/bin:/usr/bin/:/bin:/cmd:/c/MinGW64/bin:.

(hinten!)
 
So jetzt funktioniert das compilieren soweit, aber das ausführen der programme funktioniert nicht richtig. Ich hab zwar "." hinten an die bash_profile angefügt aber ich muss trotzdem noch ./*programm* schreiben um das programm zu starten. Allerdings funktioniert ein programm nicht mehr richtig, das problemlos mit mingw32 funktioniert (also mit der windows konsole und im bin ordner). Das ist so ein typisches programm wo man eine zahl eingeben soll, und die wird halt umberechnet und das ergebnis wird in der konsole ausgeben. Wie gesagt mit winge32 funktioniert es, aber mit der bash konsole im home verzeichnis erscheint in der konsole nicht die meldung "bitte gebe eine zahl ein" (also durch das printf). Stattdessen blink einfach nur der zeiger und wenn ich dann eine zahl eingebe und enter drücke, dann funktioniert es erst.
 
lckmi schrieb:
So jetzt funktioniert das compilieren soweit, aber das ausführen der programme funktioniert nicht richtig. Ich hab zwar "." hinten an die bash_profile angefügt aber ich muss trotzdem noch ./*programm* schreiben um das programm zu starten.

Dann hast Du den Punkt angefügt, aber die Konsole/Shell nicht neu gestartet? Was sagt
set | grep PATH
in der shell?

Allerdings funktioniert ein programm nicht mehr richtig, das problemlos mit mingw32 funktioniert (also mit der windows konsole und im bin ordner). Das ist so ein typisches programm wo man eine zahl eingeben soll, und die wird halt umberechnet und das ergebnis wird in der konsole ausgeben.
Ah, Du hast bei der git-bash nicht "Win-CMD" (unten) sondern mingw-konsole (oben) als Konsolentyp eingegeben. Das ist "zeilengepuffert". Versuch mal bitte.

winpty meinprogramm.exe

Das puffert die mingw-konsole so, dass Du wieder was siehst - wie in CMD.

Wenn Du das hinbekommen hast, machen wir mal was "überraschendes", Du sollst ja auch was lernen ;)
 
Also in der bash_profile steht PATH=/mingw64/bin:/usr/bin/:/bin:/cmd:/c/MinGW64/bin:. aber set grep sagt:
ACLOCAL_PATH=/mingw64/share/aclocal:/usr/share/aclocal
COMPLETION_PATH='C:\Apps\Git\mingw64/share/git/completion'
EXEPATH='C:\Apps\Git'
GIT_EXEC_PATH='C:\Apps\Git\mingw64/libexec/git-core'
HOMEPATH='\Users\abc'
INFOPATH=/usr/local/info:/usr/share/info:/usr/info:/share/info:
MANPATH=/mingw64/share/man:/usr/local/man:/usr/share/man:/usr/man:/share/man:
MSYS2_PATH=/usr/local/bin:/usr/bin:/bin
PATH=/mingw64/bin:/usr/bin/:/bin:/cmd:/c/MinGW64/bin
PATHEXT='.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC'
PKG_CONFIG_PATH=/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig

Kann doch irgendwie nicht sein, oder? Ich nehm mal an das set grep unter PATH noch ein ":." stehen muss.

Aber ist ja im grunde genommen nicht so wichtig das man ./ schreiben muss. Ich nehm mal an das "." meint das die konsole auch im aktuellen verzeichnis nach dem programm sucht.

Mit winpty wird das programm korrekt ausgeben. Kann man es so einstellen das man nicht winpty davor schreiben muss?
 
Zuletzt bearbeitet:
lckmi schrieb:
PATH=/mingw64/bin:/usr/bin/:/bin:/cmd:/c/MinGW64/bin
PATHEXT='.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC'
PKG_CONFIG_PATH=/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig

Kann doch irgendwie nicht sein, oder? Ich nehm mal an das set grep unter PATH noch ein ":." stehen muss.

Ist das auch wirklich die Datei .bash_profile in Deinem Homeverzeichnis? was sagt:
cat ~/.bash_profile


Mit winpty wird das programm korrekt ausgeben. Kann man es so einstellen das man nicht winpty davor schreiben muss?

Nicht dass ich wüßte. Wenn Du das Programm mit dem aktuellen MinGW-Compiler kompilierst, geht es dann richtig?
 
ok ich hab den fehler. ich hatte ja die bash_profile mit notepad editiert, aber die datei nicht gespeichert (lol). jetzt funktioniert alles. thx
 
Zurück
Oben