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

Lesezeit: 1 Minute

Benutzeravatar von sashoalm
sashoalm

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

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

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

Benutzeravatar von dreamcrash
Traumkrach

Um eine gemeinsam genutzte Bibliothek zu generieren, müssen Sie zuerst Ihren C-Code mit kompilieren -fPIC (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, hinzuzufügen -Wall um alle Warnungen zu erhalten, und -g um Debugging-Informationen zu erhalten, an Ihre gcc Befehle. – Basile Starynkevitch

  • Oder gcc -shared -o libhello.so -fPIC hello.c um es in einem Schritt zu tun.

    – Jonathan Leffler

    14. Februar 2013 um 22:52 Uhr

1425880cookie-checkErstellen Sie eine .so-Datei aus einer .c-Datei mithilfe der gcc-Befehlszeile

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy