从源列表生成文件自动生成目标

Viv*_*oel 3 makefile

我有这个目录结构.

app/
   src
   include
   lib/
       src
   maincode/
           main.cc
           Makefile
Run Code Online (Sandbox Code Playgroud)

我想从makefile中的源列表生成自动目标.所以我不必为每个文件编写规则.

source=\
        ../src/a.cpp
        ../src/ab.cpp
        ../lib/src/b.cpp
Run Code Online (Sandbox Code Playgroud)

我想写规则

%.o:%.cpp
Run Code Online (Sandbox Code Playgroud)

这样我就不必为每个文件重复规则了.我怎么能做到这一点?

Sag*_*gar 8

编辑:find命令应该在shell变量中

如果您使用的是Linux,我认为您可以使用:

SOURCES=$(shell find . -name *.cpp)
OBJECTS=$(SOURCES:%.cpp=%.o)

%.o: %.cpp
    <command to compile>
Run Code Online (Sandbox Code Playgroud)