Ich habe eine Makefile.am, die für den Aufbau einer Endanwendung binär verantwortlich sein wird:Wie lege ich in einem Makefile.am-Skript fest, dass ich nur Objekt-O-Dateien kompilieren möchte, mit denen später verlinkt werden kann?
Projekt/src/Makefile.am
auch im src Verzeichnis ein Unterverzeichnis ctrnn denen enthält eine weitere namens Makefile.am:
Projekt/src/ctrnn/Makefile.am
Nun ctrnn/Makefile.am nur Objekt .o Dateien mit der Idee ist, dass die Top-Level-Makefile.am die erzeugen sollte verwendet werden soll Objektdateien, die im Unterverzeichnis ctrnn generiert werden, um die Binärdatei zu erstellen.
Dies ist die ctrnn/Makefile.am
SOURCES = network.cpp\
neuron.cpp
AM_CPPFLAGS= @[email protected]
auf dieser Makefile.am Datei auf, ich will mit network.o und neuron.o enden. Ich erzeuge die nach Makefile auto usw. verwenden, aber wenn ich versuche, und dann die Make-Datei auszuführen, ist es nicht nichts tun und nur sagt:
machen: Nichts für `all‘
mich getan werden Ich weiß, warum das so ist, ich muss das Build-Ziel angeben. Aber wie mache ich das im Skript ctrnn/Makefile.am, da ich keine Binärdatei erstellen möchte, die bin_PROGRAMS benötigt, sondern die eigentlichen Objektdateien network.o und neuron.o?
(Hinweis, wenn ich einen bin_PROGRAMS-Namen angeben, beschwert er sich zu Recht über einen undefinierten Verweis auf main).
Was mache ich falsch?
Danke, Ben.
Danke! Ich benutze die Libtool-Methode, funktioniert perfekt :-) –
Danke für eine helfende Hand für mich in der Autotools/Libtool Hölle streben. Und tu uns allen einen Gefallen: lebe lang und gedeihe! – rockdaboot
foo_LDADD? Soll das nicht sein foo_LIBADD –