GCC Cross-Compiler aufsetzen unter Linux - cannot find dllcrt2.o



  • Hallo,
    nachdem ich mich jetzt schon seit geraumer Zeit immer mal wieder am Kompilieren von GCC versucht habe, stehe ich jetzt vor einem sehr seltsamen Problem. GCC 4.5 habe ich unter Linux bereits nativ kompiliert, jetzt versuche ich mich an einem GCC, der Binaries für Windows (mingw32) erstellt. Der Compiler und die Binutils sind schon kompiliert und installiert, die MinGW-Runtime und die W32Api habe ich unter Windows mit dem TDM MinGW 4.4.1 kompiliert, da es bei meinem Ubuntu nicht funktioniert hat. Jetzt beendet make nach einiger Zeit des Kompilierens mit der Fehlermeldung "dllcrt2.o: No such file: No such file or directory".
    Daraufhin habe ich:
    1. die PATH und LD_LIBRARY_PATH-Umgebungsvariable gesetzt
    2. die gesamte MinGW-Runtime in den Ordner abgelegt, der beim letzten GCC-Aufruf mit -L als Library-Path angegeben wurde
    3. die dllcrt2.o in andere Ordner, die bereits im PATH/LD_LIBRARY_PATH sind, gelegt
    4. die dllcrt2.o in den Include-Ordner, der beim Aufruf angegeben wurde, gelegt
    5. die dllcrt2.o in den Default-Suchordner beim neu kompilierten GCC gelegt.
    6. den Ordner mit der dllcrt2.o bei den LDFLAGS bei make angegeben

    Hier der Aufruf, mit dem ich den GCC konfiguriert habe:
    ../configure --enable-languages=c,c++ --prefix=/home/builds/gcc-lw --enable-threads --program-prefix=lw- --with-gmp=/home/builds/lib/gmp-4.3.2/Linux --with-mpfr=/home/builds/lib/mpfr-2.4.2/Linux --with-mpc=/home/builds/lib/mpc-0.8.1/Linux --target=mingw32

    Habe auch schon neukompilieren versucht, ohne Erfolg 😞

    Ich bin für jeden Ratschlag dankbar 🙂



  • äh, welche Distribution? Wenn möglichst sollte man unter Linux nicht selbst kompilieren, sondern den Paketmanager benutzen. Der kümmert sich nämlich automatisch darum, dass alles schön eingerichtet wird und auf dem neuesten Stand bleibt. Bei Debian und Ubuntu gibt es zB mingw direkt als fertiges Paket.



  • rüdiger schrieb:

    äh, welche Distribution? Wenn möglichst sollte man unter Linux nicht selbst kompilieren, sondern den Paketmanager benutzen. Der kümmert sich nämlich automatisch darum, dass alles schön eingerichtet wird und auf dem neuesten Stand bleibt. Bei Debian und Ubuntu gibt es zB mingw direkt als fertiges Paket.

    Ubuntu. Ich wollte halt nur die neueste Version haben und nicht den mitgelieferten GCC 4.4.1. Was meinst du mit MinGW für Ubuntu?
    Ich habe es auch zuerst unter Windows versucht, aber dort hat es nichtmal mit dem nativen Compiler funktioniert.



  • wxSkip schrieb:

    rüdiger schrieb:

    äh, welche Distribution? Wenn möglichst sollte man unter Linux nicht selbst kompilieren, sondern den Paketmanager benutzen. Der kümmert sich nämlich automatisch darum, dass alles schön eingerichtet wird und auf dem neuesten Stand bleibt. Bei Debian und Ubuntu gibt es zB mingw direkt als fertiges Paket.

    Ubuntu. Ich wollte halt nur die neueste Version haben und nicht den mitgelieferten GCC 4.4.1. Was meinst du mit MinGW für Ubuntu?
    Ich habe es auch zuerst unter Windows versucht, aber dort hat es nichtmal mit dem nativen Compiler funktioniert.

    MinGW fuer Ubuntu:

    tom@blulap:~$ aptitude search mingw
    p   gcc-mingw32                        - The GNU Compiler Collection (cross compiler 
    p   mingw-w64                          - Minimalist GNU w64 (cross) runtime          
    p   mingw32                            - Minimalist GNU win32 (cross) compiler       
    p   mingw32-binutils                   - Minimalist GNU win32 (cross) binutils       
    p   mingw32-runtime                    - Minimalist GNU win32 (cross) runtime
    


  • OK, da gibt's also schon einen Cross-Compiler, ich würde jedoch gerne am Ende 6 Cross-Compiler haben - zwischen den ganzen Desktop-Betriebssystemen halt. Würde ich alle Compiler selbst kompilieren, hätte ich sie alle in der gleichen Version - auch könnte es gut sein, dass ich diese Probleme beim nächsten Compiler wieder habe, zudem würde ich auch gerne den program-prefix haben.



  • So, jetzt habe ich dieses Problem durch Kopieren der Dateien in das aktuelle Verzeichnis (build-ordner/mingw32/libgcc) gelöst. Werde wohl noch am nächsten Problem zu knobeln haben ("Link tests are not allowed after GCC_NO_EXECUTABLES", ist bekannt, aber anscheinend problematisch).



  • So, das Problem wäre ebenfalls gelöst durch Kopieren der MinGW- und w32api-Libs in den mingw32-Ordner des Installationspfads des Compilers. Nächstes Problem: Irgendein binutils-2.20 internal Error, ich versuche gerade, die binutils-2.18 zu kompilieren:

    BFD: BFD (GNU Binutils) 2.20 internal error, aborting at /home/david/builds/binutils-2.20/bfd/coffcode.h line 952 in handle_COMDAT
    
    BFD: Please report this bug.
    

Anmelden zum Antworten