這裏是我的makefile:爲什麼我的makefile不能按預期工作?
SHELL = /bin/sh
CC=g++
CFLAGS=-I.
DEPS = settings.h
OBJ = settings.o tomato.o
EXDIR = $(ROOT_TOMATO)/bin
OBJDIR = $(ROOT_TOMATO)/obj
$(OBJDIR)/%.o: %.cpp $(DEPS)
$(CC) -c -o [email protected] $<
$(EXDIR)/tomato: $(OBJ)
$(CC) -o [email protected] $^ $(CFLAGS)
clean:
rm -f a.out *.o
all: tomato
在第9行和10日,我曾試圖把它創建的對象文件,並把它們放在OBJDIR
,但它而不是放置在當前目錄下,ROOT_TOMATO obj的文件/ src:
$(OBJDIR)/%.o: %.cpp $(DEPS)
$(CC) -c -o [email protected] $<
我不明白爲什麼它不起作用。也許有更好的方法,但我也想知道爲什麼我的代碼在這種情況下不起作用。
作爲一個側面說明,makefile文件被另一個生成文件名爲:
#Main makefile for project
#Get root compile directory
ROOT_TOMATO = $(shell pwd)
export ROOT_TOMATO
All:
$(MAKE) -C src
如果您在第9行和第10行有問題,在提問之前應該從makefile中刪除有關EXDIR的任何信息。你的例子不是最小的。你的makefile中還有很多其他垃圾,與你的問題無關。 -1的問題。 – user31264