Ich habe eine Makefile-Vorlage, um eine einzelne DLL (für ein Plugin-System) zu kompilieren. Die Make-Datei des Benutzers sieht wie folgt aus:Überprüfen, ob eine Datei in einem Makefile vorhanden ist
EXTRA_SRCS=file1 file2
include makefile.in
Im makefile.in
ich habe:
plugin.dll: plugin.os $(patsubst %,%.os,$(EXTRA_SRCS))
Wo plugin.os
ist die Haupt-C++ Datei kompiliert werden. Btw, enden die Dateien sind .os
die Objektdateien für gemeinsam genutzte Bibliothek zusammengestellt sind (das heißt mit gcc
die -fpic
Option)
Nun, das Problem ist, dass die zusätzlichen Quellen werden wahrscheinlich (aber nicht notwendigerweise) Header-Dateien werden. Im Idealfall möchte ich sie als Abhängigkeiten für das Ziel plugin.os
und die file.cpp
hinzufügen, aber nur wenn sie existieren.
Die Methode sollte sowohl für Windows als auch für Linux funktionieren oder zumindest anpassungsfähig sein. Allerdings verwende ich nur die GNU-Version von make.
das ist nicht das, was ich will ... Ich habe eine spezifische Liste von .h-Datei zum Testen für ... – PierreBdR
Das ist in Ordnung, Sie müssen keine Platzhalter verwenden. Verwende $ (Wildcard $ (HEADER_FILES)) – JesperE