32bit Library auf 64bit wrapen?



  • Hallo,
    kann man eine 32bit Library irgendwie als 64bit binden?

    Mein Projekt benötigt diverse Libraries, z.B. OpenGL, Qt, libpng, lib3ds, diese liegen mir alle als 64bit vor. Außerdem würde ich nun gerne eine 32bit Library (libNewton.a) verwenden.
    Der Linker sagt:

    /usr/bin/ld: skipping incompatible lib/libNewton.a when searching for -lNewton
    /usr/bin/ld: cannot find -lNewton
    

    1. Gibt es vielleicht irgendeine magische Compiler/Linker Option die die Library einfach wrapt? Kann ich mir da vielleicht selbst nen Wrapper basteln?
    2. Wäre es eine Option alles als 32bit zu kompilieren? Ich würde aber nur ungerne mein 64bit System mit dem ganzen 32bit Kram zu müllen.
    3. Ist das hier wirklich ein 32bit/64bit Problem?
    4. ".a" bedeutet, dass es sich um eine statische Library handelt?
    5. Ich habe gelesen, dass es unter Linux nicht möglich ist statische und dynamische Libraries gleichzeitig zu verwenden? Ist das richtig?
    6. Sonstige Ideen?

    Edit:
    Ich benutzte Fedora 10 Linux mit gcc 4.3.2



  • Zu 1.: Mir nicht bekannt, aber ich glaube, eher nicht
    Zu 2.: Ja
    Zu 3.: Ja
    Zu 4.: Ja
    Zu 5.: Ich würde sagen, daß das Zusammenlinken von statischen und dynamischen Bibliotheken sehr wohl funktioniert, allerdings nur solange Du keine shared library erzeugen willst. Wenn Du eine Anwendung mit mehreren statischen und dynamischen Bibliotheken zusammenlinkst, sollte das eigentlich gehen
    Zu 6.: Nein



  • Vielen Dank für die Antwort. 🙂

    Mittlerweile habe ich eine 64bit Version der Library gefunden. Die ist zwar noch Beta, aber ich denke das ist die beste Alternative.



  • 1. Gibt es vielleicht irgendeine magische Compiler/Linker Option die die Library einfach wrapt? Kann ich mir da vielleicht selbst nen Wrapper basteln?

    jap davon hab ich irgendwo was gelesen!
    GOOGLE MAL


Anmelden zum Antworten