Frage

Ich habe versucht, zu finden, wie DLL-s auf Linux mit Google erstellen, bekam aber sehr verwirrende Informationen.

Ist es möglich, Dynamic Link Libraries auf Linux zu schreiben? Wenn nicht, gibt es andere Mittel, mit denen ich Code in einem anderen Modul aus mehreren laufenden Programmen aufrufen kann?

War es hilfreich?

Lösung

Das ist, weil DLL Windows Begriff ist. Unter Linux werden sie gemeinsam genutzte Bibliotheken genannt.

http: //www.linux. org / docs / LDP / Howto / Programm-Bibliothek-HOWTO / shared-libraries.html

Andere Tipps

Wie Sklivvz gesagt hat, der Begriff, den Sie nach dem auf Linux sind ist Gegenstand geteilt. Diese werden gegeben, um die Dateierweiterung .so.

Mit gcc Sie können eine .so erstellen, indem Sie die -shared Option.

zB.


gcc -shared -o libfoo.so foo.c

Wenn Sie Ihr gemeinsames Objekt lib Name * .so Sie dagegen unter Verwendung der -l Option auf Ihrem Linker zusammenstellen können. Beachten Sie, dass die „lib“ in diesem Umstand abgeleitet wird.

dh.


ld -o a.out -lfoo someobject.o 

Alternativ können Sie .so Dateien zur Laufzeit laden, wie Sie können mit .dlls, mit dlopen () und dlsym ().

Es ist ein Los , wenn Sie gerade erst begonnen, aber irgendwann werden Sie Ulrich Drepper des beziehen müssen „ Wie Geteilt Libaries schreiben.“

Ich denke, .SO anstelle von DLL-Dateien Dateien, gemeinsam genutztes Objekt Sinn, nicht Stackoverflow :), ist das, was Sie wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top