2015-02-06 5 views
5

Я хочу включить все файлы .cpp и .cc в зависимости от целевого объекта с помощью подстановочного знака.Зависимости подстановочных файлов Makefile

В настоящее время, я должен сделать следующее: не кажется

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

Следующая действительно работать:

all: %.cpp %.cc 
    g++ -O3 -o [email protected] $^ -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) 
Смежные вопросы