makefile - 如何将目标文件复制到 Makefile 中的子文件夹?
问题描述
在这个 Makefile - 我想将编译后的 $(TGT) 二进制文件复制到同一目录中的子文件夹(test)。如何在 Makefile 中包含已编译目标文件的复制命令?
CC = g++
CFLAGS = -ansi -std=c++11
LIBS = -L/usr/lib -lstdc++
DEPS = foo.cpp
OBJ = foo.o
TGT+=foo
%.o: %.cc $(DEPS)
$(CC) -c $< $(CFLAGS) -o $@
all: $(TGT)
$(TGT): $(OBJ)
$(CC) $^ $(CFLAGS) $(LIBS) -o $@
# TODO: Need to include the copy command for copying TGT to test folder.
clean:
rm -f *.o $(TGT)
目前文件夹结构是-
<foo>
Makefile
foo.cpp
foo.h
<test>
<..Need "foo" inside this folder>
解决方案
有什么原因你不能只改变配方来复制文件吗?
改变:
$(TGT): $(OBJ)
$(CC) $^ $(CFLAGS) $(LIBS) -o $@
到:
$(TGT): $(OBJ)
$(CC) $^ $(CFLAGS) $(LIBS) -o $@
cp $@ test
推荐阅读
- c# - 如何将 List 对象插入到 sqlite?
- android - 带有一组颜色动态可绘制对象的 Android 图像按钮
- python - 查找与条件匹配的行中的最后一个元素
- javascript - 如何使用服务工作者内部的获取请求来模拟真实的“访问”
- python - 为什么禁止使用名为“None”的成员变量(“属性”)?
- angular - 如何在Angular中单击菜单时导航到外部URL
- angular - “在 '@angular/cdk/platform' 中找不到导出 '_supportsShadowDom'
- ngrx - 热修复ngrx自动覆盖所有其他商店时调度任何
- php - 显示具有多对多关系laravel 6的数据
- python - 如果已经安装了 python 3.6,如何在 Ubuntu 中运行 python 3.7