我有以下Makefile规则:
DIR = src
SOURCES = $(shell find $(DIR) -name "*.cpp")
OBJS := $(SOURCES:.cpp=.o)
Run Code Online (Sandbox Code Playgroud)
使用此定义,我的所有.o文件都位于与其.cpp对应项相同的目录(和子目录)中.这样的分配原则很快就会使项目目录变得混乱(有50多个文件).我想为.o文件创建一个新的特定文件夹并将它们放在那里.我需要编写一个make-rule来转换每个.o文件名,如下所示:
foo/bar/test.o —> objects/foo-bar-test.o
Run Code Online (Sandbox Code Playgroud)
我怎样才能创建这样的规则Makefile?提前致谢!
小智 5
我使用这样的规则:
$(ODIR)/%.o: $(SDIR)/%.cpp
$(CC) -c $(INC) -o $@ $< $(CFLAGS)
Run Code Online (Sandbox Code Playgroud)
哪里
ODIR = object file output directory
SDIR = .cpp source file directory
INC = list of -I flags
CFLAGS = the usual
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7175 次 |
| 最近记录: |