2016-06-20 5 views
0

Ich habe ein C++ Projekt. In meinem Projektordner habe ich drei Unterprojektordner.Makefile, um die Abhängigkeit aller Datei in einem bestimmten Verzeichnis zu nehmen

Proj_Folder 
    Include 
     head1.h 
     head2.h 
     .... 
    Sub_Proj1 
     proj1.cpp 
     makefile 
    Sub_Proj2 
     proj2.cpp 
     makefile 
    Sub_Proj3 
     proj3.cpp 
     makefile 
ShareAll.cpp 
makefile 

Dies ist Makefile im Ordner 'Proj_Folder'.

Ich brauche alle Header-Dateien, die im Verzeichnis 'Include' als Abhängigkeit für das ganze Projekt befindet.

Ich versuchte dies unter dem Code.

C_HEADER_FILES := $(patsubst Include/*.h) 

# The dependency file names. 
DEPS := $(C_HEADER_FILES:.h=.d) 

# Let make read the dependency files and handle them. 
-include $(DEPS) 

aber es sagt,

makefile:30: *** insufficient number of arguments (1) to function `patsubst'. Stop. 

Wie kann ich alle Header-Dateien als Abhängigkeit in diesem Projekt Make-Datei enthalten?

+3

Die "richtige" Art der Handhabung wäre GCC zu generieren Abhängigkeitsdateien mit etwas wie '-MMD'. – user657267

Antwort

1

Sie verwenden die falsche Funktion, um den Satz der .h-Dateien zu sammeln. Sie müssen verwenden:

C_HEADER_FILES := $(wildcard Include/*.h)