2016-07-29 10 views
2

Wie erstelle ich eine benutzerdefinierte Bibliothek in GNU? Was ich meine ist:Wie erstelle ich eine benutzerdefinierte Bibliothek in GNU?

Wenn wir #include < stdio.h verwenden> und printf

wir es mit gcc main.c

Jetzt kompilieren

ich meine benutzerdefinierten Header erstellen und .a/.so Ich weiß, dass ich die Umgebungsvariable C_INCLUDE_PATH setzen kann und meine Headerdateien mit #include <> anstelle von #include "" einschließen kann. Aber ich habe noch zu kompilieren mit

gcc main.c -o Programm -L/was auch immer/-lwahtever

(mit Set-Umgebungsvariablen bei Verwendung von .so)

Ist es möglich zu machen, es verhält sich wie #include < stdio.h>, wo ich die Pfade mit entsprechenden Befehlszeilenargumenten nicht einschließen muss?

+0

Gibt es eine Möglichkeit, '-l' wie Standardbibliotheken zu entfernen? – Thenewstockton

Antwort

0

Sie brauchen nicht -L/whatever/, nur -lwhatever. Die erste Option liefert den Pfad zu Ihrer Bibliothek, aber Sie haben das bereits mit dem #include und dem Ändern C_INCLUDE_PATH erledigt. Die zweite Option teilt dem Linker mit, mit welcher Bibliothek er die ausführbare Datei verknüpfen soll. Ein Beispiel dafür ist die Verwendung von Funktionen aus der C-Math-Bibliothek, die Sie #include <math.h>, aber zum Kompilieren benötigen Sie noch die Linker-Option -lmath. Um deine Frage zu beantworten, nein. Sie können die erste Option entfernen, aber Sie müssen die zweite Option verlassen.

+0

Es funktioniert nicht .... Wenn ich gcc main.c -o program lwhatever. der Linker beklagt sich, dass er nichts gefunden hat. Fehle ich etwas? – Thenewstockton

+0

Haben Sie den Strich vorne eingefügt? Es sollte 'gcc main.c -o program -lwhatever' sein. Auch die Namenskonventionen von GNU-Bibliotheken bedeuten, dass Ihre Bibliothek 'libwhatever.a' oder' libwhatever.so' sein sollte. Entschuldigung. –

+0

Nein ... es funktioniert nicht ... Es scheint wie -L/was auch immer/ist erforderlich ... Vielleicht muss eine andere Umgebung als C_INCLUDE_PATH gesetzt werden? – Thenewstockton

Verwandte Themen