shared object mit dem gcc bauen ... basics



  • hallo,

    ich würde mir gerne eine .so mit dem gcc (g++) bauen.
    Ich habe ein paar .o Dateien und eine statische bibliothek.
    Zunächst einmal: Kann ich allein anhand einer statischen bibliothek eine dynamische bibliothek erstellen?

    Naja weiter im Text. Ich gehe so vor:

    g++ -c -fPIC a.c
    g++ -c -fPIC b.c
    g++ -shared -o result.so a.o b.o -L ./meineLib.a
    

    Ich habe irgendwo gelesen, dass man die .so datei mit dem compiler tag -fPIC bauen muss. Ist das immer so?

    Danach habe ich also mein shared object.
    Schaue ich mir jedoch mit "ldd" das shared object an, wird nicht meineLib.a angezeigt... wieso nicht? Woran sehe ich denn dann ob die object files, die in meineLib.a enthalten sind in meinem shared object sind?

    Ok naja ich weiß dass das "basics" sind und bitte daher auch im voraus um entschuldigung *schäm*

    Viele Grüße
    Daved



  • Und was hat das genau mit dem C++-Standard zu tun? Definitiv falsches Forum, bitte lies dir den Link in meiner Signatur durch (und grundsätzlich immer erstmal wichtig markierte Threads lesen bevor du postest).



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Kann ich allein anhand einer statischen bibliothek eine dynamische bibliothek erstellen?

    'man gcc' wird dir die Frage beantworten.

    Schaue ich mir jedoch mit "ldd" das shared object an, wird nicht meineLib.a angezeigt... wieso nicht?

    Weil sie keine dynamische Bibliothek ist. Sie wurde komplett in deine .so Datei hineinkompiliert. Da gibt es auch nichts zu sehen, weil du ja angegeben hast, es so zu machen. Wenn das nichts hilft, dann mache dir nocheinmal klar, was es bedeutet, statisch bzw. dynamisch zu linken.


Anmelden zum Antworten