Beschreibe hier die neue Seite. |
== Shared Libraries == [[Code] libtool --mode=link gcc -shared test.c -o libtest.so -O3 -Wall -Wno-trigraphs -fPIC -g ] Funktionen sollten zwischen den Macros __BEGIN_DECLS und __END_DECLS definiert werden um mit C++ Programmen diesbezüglich keine Probleme zu bekommen Beide Macros im Hintergrund: [[Code] /* C++ needs to know that types and declarations are C, not C++. */ #ifdef __cplusplus #define __BEGIN_DECLS extern "C" { #define __END_DECLS } #else #define __BEGIN_DECLS #define __END_DECLS #endif ] libtool .. ein Script welches das erstellen von Libraries auf verschiedenen Architekturen erleichtert gcc .. gnu Compiler -shared .. Flag um ein Shared Library zu erstellen -o libtest.so .. Libraries haben im Linux ein prefix lib[test.so] will man ein Programm schreiben welches dieses Library benutzt muss man den mainsource mit dem Library verlinken, dies würde in diesem Fall durch -ltest geschehen -O3 .. Optimierungslevel -Wall .. display all warnings -Wno-trigraphs .. gibt keine warnungen bei trigraphs aus -fPIC .. position independent code - für shared libraries -g .. debug Generell Header Dateien die öfter Inkludiert werden könnten sollten wie folgt aussehen: [[Code] #ifndef __LIB_yourlibraryname #define __LIB_yourlibraryname ... declarations #endif ] |
Shared Libraries | ![]() |
![]() |
|
Funktionen sollten zwischen den Macros __BEGIN_DECLS und __END_DECLS definiert werden um mit C++ Programmen diesbezüglich keine Probleme zu bekommen
Beide Macros im Hintergrund:
![]() |
|
libtool .. ein Script welches das erstellen von Libraries auf verschiedenen Architekturen erleichtert
gcc .. gnu Compiler
-shared .. Flag um ein Shared Library zu erstellen
-o libtest.so .. Libraries haben im Linux ein prefix lib[test.so] will man ein Programm schreiben welches dieses Library benutzt muss man den mainsource mit dem Library verlinken, dies würde in diesem Fall durch -ltest geschehen
-O3 .. Optimierungslevel
-Wall .. display all warnings
-Wno-trigraphs .. gibt keine warnungen bei trigraphs aus
-fPIC .. position independent code - für shared libraries
-g .. debug
Generell
Header Dateien die öfter Inkludiert werden könnten sollten wie folgt aussehen:
![]() |
|