Problem beim Einbinden einer library bei g++ unter Ubuntu



  • Hallo,

    bin noch ziemlicher Neuling in Sachen Programmierung und versuche gerade meinen Code zu kompilieren. Auf dem Uni-Rechner mit Suse (Version kA, recht neu) klappt das auch problemlos mit dem Befehl

    g++ programmcode.cpp -o programm -L . -I . -lHDF5File -lhdf5
    

    Allerdings habe ich auf meinem Heimrechner mit Ubuntu (ich glaub Version 9.10) das Problem, dass der Compiler immer sagt, dass die Datei libHDF5File.a nicht lesbar ist (Skipping unreadable File libHDF5File.a ...). Habe zuerst eine beschädigte Datei vermutet und die Datei vom Unirechner nochmal rübergezogen, daran kann es also nicht liegen. Die hdf5 Bibliothek ist installiert (hab ich im Paketmanager nachgeschaut) und die Datei libHDF5File.a befindet sich im selben Ordner mit dem Programmcode, in diesem Ordner rufe ich auch g++ auf.
    Hat jemand eine Idee woran das liegen könnte?



  • Kann es sein, dass auf dem Uni-Rechner eine 64-Bit Version der Datei liegt und du eine 32-Bit GCC-Version verwendest? Oder anders rum? Dann klappt das nämlich nicht. Außerdem kann es zu Problemen kommen, wenn die Bibliothek mit einer anderen Version vom gcc, als deinem übersetzt wurde.

    Wie lautet die Fehlermeldung denn genau?

    Also wenn es die Bibliothek nicht im Paketmanager gibt, müsstest du die Bibliothek wohl selber compilieren.



  • Also die komplette Fehlermeldung lautet

    /usr/bin/ld: skipping incompatible ./libHDF5File.a when searching for -lHDF5File
    /usr/bin/ld: cannot find -lHDF5File
    collect2: ld returned l exit status
    

    also nicht unreadable (wie ich oben geschrieben habe, sorry!)

    Wenn das jetzt eine 64 Bit Datei ist, wie könnte ich die Bibliothek dann selber kompilieren? Ich habe die 3 Dateien, die sich in der Bibliothek befinden zur Verfügung. Bräuchte ich dann den Quellcode der Dateien und müsste mir daraus dann die .o Dateien kompilieren und das ganze dann wieder als libHDF5File.a packen?



  • kaesekuchen86 schrieb:

    Bräuchte ich dann den Quellcode der Dateien und müsste mir daraus dann die .o Dateien kompilieren und das ganze dann wieder als libHDF5File.a packen?

    Ja.


Log in to reply