Makefile pour les Bibliothèques Partagées?
Je viens d'écrire un Makefile pour construire une librairie partagée, semblable à la suivante:
libmystuff.so: CFLAGS+=-fPIC -shared
libmystuff.so: libmystuff.o otherstuff.o
$(CC) $(CFLAGS) -o $@ $^
Je tiens à éviter de faire des actions explicites lorsque cela semble être une opération courante, mais il semble que il n'y a pas de règle implicite ou autre built-ins de normaliser ce. Je suis à l'aide de GNU Make sur Linux pour le moment, mais il va falloir que cela fonctionne sur OS X ainsi.
MODIFIER: je veux parler des règles plutôt que de compilateur/linker drapeaux.
Pouvez-vous recommander propre, réutilisable Makefile règles pour construire shared libs? Peut-être un %.so:
ou .c.so:
type de règle?
Vous devez vous connecter pour publier un commentaire.
Pour la portabilité, j'aurais l'air d'intégrer les
libtool
.libtool
ajoutera automatiquement-fPIC
/-DPIC
/-shared
drapeaux comme il convient, et de générer quoi que.o
/.a
/.so
fichiers pourront être utilisés sur la plate-forme actuelle.Ou vous pouvez utiliser Automake's libtool intégration.
La construction des bibliothèques partagées est dépendants de la plateforme. Par exemple, les indicateurs que vous utilisez sont
ok pour GCC pour ELF plates-formes, pour cygwin, par exemple, vous n'ajoutez pas -fPIC pour d'autres plates-formes et les compilateurs vous avez besoin d'autres drapeaux.
Vous avez besoin l'un de l':