Für Windows kompilieren: GCC woher?



  • Kuckstu hier: http://sourceforge.net/projects/mingw/files

    - Zweig "GCC Version 4" aufklappen.
    - Dort "Current Release_ gcc-4.4.0" aufklappen
    - Du brauchst mindestens folgende Archive:

    - gcc-c++-4.4.0-mingw32-bin.tar.gz
    - gcc-c++-4.4.0-mingw32-dll.tar.gz
    - gcc-core-4.4.0-mingw32-bin.tar.gz
    - gcc-core-4.4.0-mingw32-dll.tar.gz
    - gmp-4.2.4-mingw32-dll.tar.gz
    - mpfr-2.4.1-mingw32-dll.tar.gz

    Bei pthreads-w32-2.8.0-mingw32-dll.tar.gz bin ich mir nicht sicher, würde es aber trotzdem installieren (macht den Braten auch nicht fett).

    Schließlich musst du noch die Dateie libiconv-1.13-mingw32-dll-2.tar.gz haben. Die liegt in "MinGW libiconv" -> "release 1.13".

    Damit sollte der GCC laufen.

    Stefan.



  • Schade eigentlich, wenn du den GCC mit dem VC6 übersetzt hättest, hätte ich dir einen ASCII-Ordnen gezeichnet.
    🙂



  • DStefan: ist da nicht vor nicht allzu langer Zeit ein all-in-one-package aufgetaucht?



  • *mngbd schrieb:

    DStefan: ist da nicht vor nicht allzu langer Zeit ein all-in-one-package aufgetaucht?

    code-blocks gibts mit mingw im bundle.
    🙂



  • ;fricky schrieb:

    code-blocks gibts mit mingw im bundle.
    🙂

    mingw sollte man aber einzeln nehmen, denke ich, da ist das updaten geregelter.



  • ^^könnte sein. es gibt auch 'nen mingw installer: http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite
    🙂



  • @;fricky
    dein Link geht zur Version 3.4.5 des MinGW

    Hab jetzt aktuell nicht ausführlich gesucht und getestet.
    Unter Linux ist es kein Problem eine 4er Version im Netz zu finden 🙂

    Aber unter Windows hab ich als Gesamtpaket und auch unter Code::Blocks nur die 3.4.5 gefunden, obwohl Code::Blocks selbst mit einer aktuelleren Version entwickelt wird ( aber C::B gibts ja nicht nur für Windows ).

    Unter Windows kenne ich die TDM Version, die bei 4.4.x sein sollte, und es soll noch 4er Versionen eventuell im Zusammenhang mit QT im Netz verfügbar sein.

    MfG f.-th.



  • f.-th. schrieb:

    @;fricky
    dein Link geht zur Version 3.4.5 des MinGW

    Normalerweise hinkt der (nicht benötigte) Installer von MinGW den Paketen um ein halbes Jahr hinterher.
    Current Release_ gcc-4.4.0
    http://sourceforge.net/projects/mingw/files/



  • f.-th. schrieb:

    @;fricky
    dein Link geht zur Version 3.4.5 des MinGW

    ist doch nicht schlimm. oder hat der 3.4.5 irgendwelche fiesen bugs, die das arbeiten mit ihm unmöglich machen?
    🙂



  • ;fricky schrieb:

    ist doch nicht schlimm. oder hat der 3.4.5 irgendwelche fiesen bugs, die das arbeiten mit ihm unmöglich machen?
    🙂

    bei C++ ändert sich derzeit ein wenig. das betrifft dich nicht.



  • volkard schrieb:

    bei C++ ändert sich derzeit ein wenig. das betrifft dich nicht.

    der OP will doch C-sources compilen. und c++ ging ja vorher auch schon, ohne die neuerungen.
    🙂



  • ;fricky schrieb:

    der OP will doch C-sources compilen.

    Stimmt. Es ging um einen neuen Schalter.
    "Warum ich den 4.4.1 benutzen will? Weil meine CPU laut GCC mit einem Schalter unterstützt wird. Dieser Schalter wird aber nicht gefunden wird."

    ;fricky schrieb:

    und c++ ging ja vorher auch schon, ohne die neuerungen.

    Nö, ging nicht.



  • volkard schrieb:

    "Warum ich den 4.4.1 benutzen will? Weil meine CPU laut GCC mit einem Schalter unterstützt wird. Dieser Schalter wird aber nicht gefunden wird."

    hast recht, das hab ich übersehen.

    volkard schrieb:

    ;fricky schrieb:

    und c++ ging ja vorher auch schon, ohne die neuerungen.

    Nö, ging nicht.

    wieso das nicht?
    🙂



  • ;fricky schrieb:

    wieso das nicht?
    🙂

    Bin nicht sicher, aber ist es nicht falsch, wenn

    char ch=0;
    for(;;){
      tuwas();
      if(!++ch)
        cout<<"hallo\n";
    }
    

    keine Ausgabe macht?
    (mit if(!--c) gehts)

    Oder template placement delete werden nicht erzeugt und aufgerufen.



  • volkard schrieb:

    Bin nicht sicher, aber ist es nicht falsch, wenn

    char ch=0;
    for(;;){
      tuwas();
      if(!++ch)
        cout<<"hallo\n";
    }
    

    ^^glaub ich nicht, dass er das nicht kann. irgendwann ist 'ch' 0 und dann muss er was ausgeben. sowas wäre schon in der version 0.x aufgefallen.

    volkard schrieb:

    Oder template placement delete werden nicht erzeugt und aufgerufen.

    naja, ich glaube es gibt keinen c++ compiler, der alle c++-spezialitäten beherrscht, die theoretisch möglich wären. dafür ist die sprache zu umfangreich und die möglichen permutationen von sprachmitteln sind einfach zu viele. das wird mit c++0x wohl noch schlimmer werden.
    🙂



  • ;fricky schrieb:

    ^^glaub ich nicht, dass er das nicht kann. irgendwann ist 'ch' 0 und dann muss er was ausgeben. sowas wäre schon in der version 0.x aufgefallen.

    Hört, hört. Wenn ich sowas sage, erwarte ich, daß Du es erst testest, und nicht dumm widersprichst.

    localhost ~ # nano -w main.cpp
    localhost ~ # g++ main.cpp && ./a.out
    hallo
    hallo
    hallo
    localhost ~ # g++ -O2 main.cpp && ./a.out
    localhost ~ # cat main.cpp
    #include <iostream>
    using namespace std;
    
    void tuwas(){
    }
    
    int main(){
            char ch=0;
            for(int i=0;i<1000;++i){
                    tuwas();
                    if(!++ch)
                            cout<<"hallo\n";
            }
    }
    
    localhost ~ # gcc -v
    Using built-in specs.
    Target: i686-pc-linux-gnu
    Configured with: /var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.3.2 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --disable-fixed-point --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --disable-libgcj --with-arch=i686 --enable-languages=c,c++,treelang --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.3.2-r3 p1.6, pie-10.1.5'
    Thread model: posix
    gcc version 4.3.2 (Gentoo 4.3.2-r3 p1.6, pie-10.1.5)
    

    naja, ich glaube es gibt keinen c++ compiler, der alle c++-spezialitäten beherrscht, die theoretisch möglich wären. dafür ist die sprache zu umfangreich und die möglichen permutationen von sprachmitteln sind einfach zu viele. das wird mit c++0x wohl noch schlimmer werden.

    Das hat nichts mit Permutationen zu tun. Es ist auch nicht nötig, daß ein Compiler alle Sprachmittel beherrscht. Was er aber nicht machen sollte, ist sie stillschweigend zu akzeptieren und dann falsches Compilat zu erzeugen.



  • Ich habe die Anleitung von StefanD durchgearbeitet. Das mit dem TDM hat ja nicht funktioniert. Bei Stefans Anleitung fehlen aber immer noch die Header und Libs! Sie fehlen auch dann noch wenn ich dieses 60 MB gcc-full Package herunterlade. Ich habe jetzt kurzerhand die 3.x Include/Lib Verzeichnisse genommen, das Lib Verzeichnis des 4.4 drüber kopiert und beides in des Verzeichnis des 4.4'er verschoben. Ergebnis eines Kompile Vorgangs: "Process terminated with status 1"

    PS: Den Installer habe ich auch bemerkt, kurze Zeit gejubelt und mich dann wieder über eine weitere 3.x Installation geärgert.



  • Evtl. Umgebungsvariable falsch gesetzt? Pm mich per Board oder ICQ, falls du eine Installationsanleitung haben willst.



  • Naja, das Include Verzeichnis ist halt leer. Die anderen Header scheinen nicht zu funktionieren, siehe Fehlermeldungen. Ich habe ihn runter geworfen und eines von diesen TDM Setups (tdm-mingw-1.905.0-4.4.0-2.exe) installiert (nicht die zum rüber kopieren) nun kann ich mit CodeBlocks&GCC kompilieren. Das war weit schwieriger als ich gedacht hätte!

    Falls Du es grad aus dem Ärmel schütteln kannst und nicht erst googlen mußt: Welche tar.gz hätte ich noch herunter laden müssen um auch die Header&Libs zu bekommen? (Wenn ich mal updaten will, ohne auf so ein TDM Setup angewiesen zu sein.)



  • Nöe, wo Mingw die libstdc++ versteckt hat, weiss ich nicht. Neben bei sollte ich mal ausprobieren, ob die parallele Versionen der Algos mitdrin sind. Wäre ein Drama wenn nicht XD


Anmelden zum Antworten