Rezept zur Erzeugung und Verwendung von Bibliotheken ==================================================== O. Vorbereitungen ----------------- - Wechsel Sie in Ihr Arbeitsdirectory - Erzeugen Sie ein Directory fuer header files mkdir include - Erzeugen Sie ein Directory fuer library files mkdir lib - ./lib muss in den Umgebungspfad fuer shared libraries eingefuegt werden echo $LD_LIBRARY_PATH (zeigt den Inhalt des Umgebungspfad fuer shared libraries) export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./lib - Kopieren Sie die header files Ihrer Funktionen in KubikWurzelNewton_III.h mv KubikWurzelNewton_III.h include/. und fuegen Sie #include "KubikWurzelNewton_III.h" in die include section von KubikWurzelNewton_III.cc - Kopieren Sie den Quellcode von Func und FuncPrime jeweils in Func.cc und FuncPrime.cc entfernen Sie den entsprechenden code aus KubikWurzelNewton_III.cc - Kompilieren Sie beide Funktionen g++ -c Func.cc -o Func.o g++ -c FuncPrime.cc -o FuncPrime.o I. Verwendung einer statischen Bibliothek ----------------------------------------- - Erstellen Sie eine statische Bibliothek mit ar rcs libmyFunc.a Func.o FuncPrime.o mv libmyFunc.a lib/. - Erzeugen Sie ein ausfuehrbares Programm mit g++ -static KubikWurzelNewton_III.cc -o KubikWurzel -I./include -L./lib -lmyFunc II. Verwendung einer dynamischen Bibliothek ------------------------------------------- - Erstellen Sie eine dynamische Bibliothek mit gcc -fPIC -c Func.cc -o Func.o gcc -fPIC -c FuncPrime.cc -o FuncPrime.o gcc -shared -Wl,-soname,libmyFunc.so -o libmyFunc.so Func.o FuncPrime.o mv libmyFunc.so lib/. cd lib; mv libmyFunc.a temp.a (geben Sie libmyFunc.a einen anderen Name) - Erzeugen Sie ein ausfuehrbares Programm mit g++ -fPIC KubikWurzelNewton_III.cc -o KubikWurzel -I./include -L./lib -lmyFunc