2016-08-03 43 views
0

Ich habe diese Anweisungen (http://jonisalonen.com/2012/calling-c-from-java-is-easy/) zum Erstellen einer gemeinsam genutzten Bibliothek folgen, aber diese Anweisungen zeigen nur, wie es mit einer Datei zu tun. Wenn ich diese Datei verwende, die ich zu einer gemeinsam genutzten Bibliothek gemacht habe, kann die .so-Datei keine anderen .c-Dateien an derselben Stelle aufrufen. Wie kompiliere ich alle c-Dateien, so dass ich eine zusammengeführte gemeinsame Bibliothek erstellen kann, auf die über Java zugegriffen werden kann?Wie MULTIPILE C-Dateien in eine gemeinsame Bibliothek für Fremdfunktionsschnittstelle zusammenführen

Antwort

1

1) Erstellen Sie Ihre Objektdateien mit -fPIC:

gcc -fPIC -c file1.c 

Das schafft file1.o. (dasselbe für file2.c, file3.c und so weiter).

2) Verknüpfen Sie es in einer gemeinsam genutzten Bibliothek.

gcc -shared -o library.so file1.o file2.o file3.o 

entsprechend anpassen für zusätzliche Compiler-Flags, sind Pfade von anderen Sachen, die Sie verwenden usw.