J'ai un Makefile.am qui sera responsable de la construction d'un binaire d'application finale:Comment est-ce que je spécifie dans un manuscrit de Makefile.am que je veux seulement compiler des fichiers d'objet .o qui peuvent être liés plus tard?
projet/src/Makefile.am
également dans le répertoire src est un sous-répertoire appelé ctrnn qui contient un autre Makefile.am:
projet/src/ctrnn/Makefile.am
maintenant, ctrnn/Makefile.am ne doit générer objet .o fichiers avec l'idée étant que le haut niveau Makefile.am doit utiliser le fichiers objet générés dans le sous-répertoire ctrnn pour générer le binaire.
C'est le ctrnn/Makefile.am
SOURCES = network.cpp\
neuron.cpp
AM_CPPFLAGS= @[email protected]
Sur la base de ce fichier Makefile.am, je veux finir avec network.o et neuron.o. Je suis générer le Makefile selon l'utilisation automake etc, mais lorsque je tente puis exécutez le fichier makefile, il ne fait rien et dit simplement:
Marque: Rien à faire pour `tous »
I savoir pourquoi c'est, j'ai besoin de spécifier la cible de construction. Mais comment faire cela dans le script ctrnn/Makefile.am étant donné que je ne veux pas construire un binaire qui nécessiterait bin_PROGRAMS mais des fichiers objet réels network.o et neuron.o?
(Notez que si je spécifie un nom bin_PROGRAMS, il finit à juste titre par se plaindre d'une référence indéfinie à main).
Qu'est-ce que je fais mal?
Merci, Ben.
Merci! J'ai fini par utiliser la méthode libtool, fonctionne parfaitement :-) –
Merci pour un coup de main pour moi luttant dans l'enfer autotools/libtool. Et faites-nous tous une faveur: vivez longtemps et prospérez! – rockdaboot
foo_LDADD? N'est-ce pas supposé être foo_LIBADD –