Makefile 如何将可执行文件放在文件夹下?
我原来的目录结构是: 包括/(常数h,映射h) src/(main.c,map_reduce.c) 生成文件 如果没有人,我想创建一个bin文件夹 然后,将main.c编译成可执行的mapreduce文件并将其放入bin文件夹 但是,对于bin/$@,如果在$@之前添加bin/则会显示错误: /usr/bin/ld:无法打开输出文件bin/mapreduce:没有此类文件或 目录 collect2:错误:ld返回了1个退出状态 Makefile:19:目标“mapreduce”的配方失败 make:**[mapreduce]错误1 如果不使用bin/,只需:Makefile 如何将可执行文件放在文件夹下?,makefile,Makefile,我原来的目录结构是: 包括/(常数h,映射h) src/(main.c,map_reduce.c) 生成文件 如果没有人,我想创建一个bin文件夹 然后,将main.c编译成可执行的mapreduce文件并将其放入bin文件夹 但是,对于bin/$@,如果在$@之前添加bin/则会显示错误: /usr/bin/ld:无法打开输出文件bin/mapreduce:没有此类文件或 目录 collect2:错误:ld返回了1个退出状态 Makefile:19:目标“mapreduce”的配方失败 mak
gcc $(CFLAGS) src/main.c -o $@
如果在bin文件夹外创建mapreduce文件,则会创建bin文件夹
如何将mapreduce文件放入bin文件夹
bin/mapreduce: mapreduce | bin
这条规则是不正确的。在运行mapreduce
之前,需要创建bin
。但这一规则并没有实现排序。以下是一些选项:
- 将订单专用先决条件置于
目标上:mapreduce
mapreduce: | bin
$(BINS) : | bin
- 将仅订单的先决条件放在
目标上:$(BINS)
mapreduce: | bin
$(BINS) : | bin
mapreduce
之前,需要创建bin
。但这一规则并没有实现排序。以下是一些选项:
- 将订单专用先决条件置于
目标上:mapreduce
mapreduce: | bin
$(BINS) : | bin
- 将仅订单的先决条件放在
目标上:$(BINS)
mapreduce: | bin
$(BINS) : | bin