meine Makefile.am erstellt die ausführbare Datei main: "symplerTest" ich möchte die Dateien "geometry/source/*. O" verlinken. Derzeit bin ich es so verknüpft:autotools: Makefile.am: Link wenn Datei existiert
symplerTest_LDFLAGS = \
...
geometry/source/*.o
Das funktioniert. Aber jetzt, in einem nächsten Schritt, möchte ich nur verlinken, wenn die Dateien * .o existieren. Ich habe versucht, diese:
if ("$(wildcard $(geometry/source/*.o))","")
symplerTest_LDFLAGS += geometry/source/*.o
endif
aber die folgende Fehlermeldung erhalten:
srcUnittest/Makefile.am:81: error: endif without if
srcUnittest/Makefile.am:79: warning: wildcard $(geometry/source/*.o: non-POSIX variable name
srcUnittest/Makefile.am:79: (probably a GNU make extension)
Das Problem bei ("$ (Platzhalter $ (Geometrie/Quelle/* o))" zu sein scheint, "")
Vielen Dank!
Ich vermute, das ist eine XY-Frage. Warum würden Sie in einem Automake-Projekt '.o'-Dateien für den Linker verwenden? Sind das keine Zwischenziele?Normalerweise würden Sie steuern, welche Objekte in die ausführbare Datei eingebunden sind, indem Sie steuern, welche Quellen ihm zugeordnet sind, und Automake die Details sortieren lassen. Es gibt andere Alternativen, wie zum Beispiel das Erstellen und Verweisen auf Convenience-Bibliotheken, aber wenn Ihre 'Makefile.am' überhaupt irgendetwas über' .o'-Dateien sagt, dann sind Sie sehr wahrscheinlich auf einem suboptimalen Pfad. –