Erstellen Sie eine .so-Datei aus einer .c-Datei mithilfe der gcc-Befehlszeile

 C Programming >> C-Programmierung >  >> Tags >> GCC
Erstellen Sie eine .so-Datei aus einer .c-Datei mithilfe der gcc-Befehlszeile


Ich versuche, ein Hallo-Welt-Projekt für dynamische Linux-Bibliotheken (.so-Dateien) zu erstellen. Ich habe also eine Datei hello.c:


#include <stdio.h>
void hello()
{
printf("Hello world!\n");
}

Wie erstelle ich eine .so-Datei, die hello() exportiert , mit gcc von der Kommandozeile aus?


Antworten:


Um eine gemeinsam genutzte Bibliothek zu generieren, müssen Sie zuerst Ihren C-Code mit dem -fPIC kompilieren (positionsunabhängiger Code) Flag.


gcc -c -fPIC hello.c -o hello.o

Dadurch wird eine Objektdatei (.o) generiert, jetzt nehmen Sie sie und erstellen die .so-Datei:


gcc hello.o -shared -o libhello.so

BEARBEITEN :Vorschläge aus den Kommentaren:


Sie können

verwenden
gcc -shared -o libhello.so -fPIC hello.c

um es in einem Schritt zu tun. – Jonathan Leffler


Ich schlage auch vor, -Wall hinzuzufügen um alle Warnungen zu erhalten, und -g um Debugging-Informationen zu erhalten, an Ihren gcc Befehle. – Basile Starynkevitch