2015-02-06 2 views
5

मैं वाइल्डकार्ड का उपयोग करके लक्ष्य की निर्भरताओं में सभी .cpp और .cc फ़ाइलों को शामिल करना चाहता हूं।मेकफ़ाइल वाइल्डकार्ड निर्भरता

all: %.cpp %.cc 
    g++ -O3 -o [email protected] $^ -I./include -L./lib 

मैं त्रुटि कर के रूप में मिलता है:

all: main.cpp file1.cc file2.cc 
    g++ -O3 -o all main.cpp file1.cc file2.cc -I./include -L./lib 

निम्नलिखित है काम करने लगता नहीं:

वर्तमान में, मैं निम्नलिखित करना है *** कोई नियम लक्ष्य बनाने के लिए '% .cc', 'all' द्वारा आवश्यक है। रूक जा।

उत्तर

5
targets := $(wildcard *.cpp) $(wildcard *.cc) 
all: $(targets) 
     g++ $(targets) 

इस काम करता है मुझे

1

"%" अंतर्निहित पैटर्न नियम का प्रतिनिधित्व करते हैं, "*" वाइल्डकार्ड है के लिए।

targets := $(wildcard *.cpp *.c) 
all: $(targets) 
    g++ $(targets)