Ich habe ein Makefile nur geschrieben, um eine gemeinsame Bibliothek, ähnlich wie die folgenden bauen:Makefile für freigegebene Bibliotheken?
libmystuff.so: CFLAGS+=-fPIC -shared
libmystuff.so: libmystuff.o otherstuff.o
$(CC) $(CFLAGS) -o [email protected] $^
Ich mag tun explizite Aktionen zu vermeiden, wenn dies wie eine gemeinsame Operation scheint, aber es scheint, gibt es keine implizite Regel ist oder andere Einbauten, um dies zu standardisieren. Ich benutze momentan GNU Make unter Linux, muss aber auch unter OS X arbeiten.
BEARBEITEN: Ich frage nach make Regeln statt Compiler/Linker Flags.
Können Sie saubere, wiederverwendbare Makefile-Regeln zum Erstellen von gemeinsam genutzten Bibliotheken empfehlen? Vielleicht eine %.so:
oder .c.so:
Art Regel?
Libtool scheint der beste Weg zu sein. Es ist eine Schande, dass das Handbuch Sie zu den Wölfen wirft (siehe http://www.gnu.org/software/libtool/manual/libtool.html#Makefile-rules), wenn Sie nicht die gesamte Autotools-Suite verwenden. – dwc