Bibliotheken (Lib's) erstellen und linken (Win32/Linux)



  • Hallo,

    ich beschäftige mich mit der Frage, wie ich z.B. Bibliotheken (vector, matrizen, .., geodaten,...) erstelle und dann in meinen Programen verwende.
    Unter Win32 fallen mir DLL ein, damit kann ich dann (Quelltextunabhängig) Funktionen aufrufen. Allerdings kann ich auch die cpp Dateien und die h Dateien nutzen. Aber was ist besser? DLL könnte ich mir vorstellen ist langsamer als Header- und Quelltext-Dateien. Wie geht das z.B. unter Linux?

    Gruß
    Franky



  • Der vorteil der Library ist, dasdu nur die .h (definitionen) zur Lib dazuliefern brauchst ... wenn du supergeheime, geldbringende Dinge in deiner Lib implementiert hast, hilft dir das dabei das zu verkaufen. Auserdem brauchen die Leute dies nur benutzen nicht selber zum Laufen zu bringen sondern nur die lib und das .h und gut ist. du könntest es genausogut als "Klasse" mit .h und .cpp weitergeben, dann baut das jeder ein wenn ers mag, pfuscht drin rum, ändert Zeug ... und dann sind "gespeicherte" Sachen die mit einer Version deiner Klasse geschrieben wurden, nicht mehr mit einer anderen Lesbar u.ä.



  • Unter Linux, mit gcc in die kommandozeile:
    gcc -shared ...so wie der übliche rest (und ein flag, dass nicht gelinkt wird) und die datei libNAME.so nennen so erzeugt man dll.
    das lib im Namen ist wichtig.
    Einbinden tust du die dann später mit -l NAME
    gruss


Anmelden zum Antworten