Makefile 失败并出现错误 no rule to make target

Makefile fails with error no rule to make target

我正在努力创建一个有效的 make 文件。

我的结构

我的代码

# Define compiler
CC = g++

# Compiler flags
CFLAGS  = -g -Wall

# Build target executable
DIR = /src
INCLUDES = ../include
TARGET = main

all: $(TARGET)

$(TARGET): $(TARGET).cpp
    cd $(DIR) &
    $(CC) $(CFLAGS) -I $(INCLUDES) -o $(TARGET) $(TARGET).cpp

clean:
    cd $(DIR) &
    $(RM) $(TARGET)

我的错误

make: *** 没有创建目标 main.cpp', needed bymain' 的规则。停止。

编辑 在我的 main.cpp 中,我的 Makefile 可以在顶部找到这一行:#include "pugixml.hpp"

我认为这对你有用。

所有路径都是相对于 Makefile 所在的文件夹给出的。这意味着需要为源依赖项指定源文件夹。

# Define compiler
CC = g++

# Compiler flags
CFLAGS  = -g -Wall

# Build target executable
SRC = src
INCLUDES = include
TARGET = main

all: $(TARGET)

$(TARGET): $(SRC)/$(TARGET).cpp
    $(CC) $(CFLAGS) -I $(INCLUDES) -o $@ $^ 

clean:
    $(RM) $(TARGET)

命令使用制表符(而非空格)。

$@ 解析为目标(在本例中为 main)。

$^ 解析为所有依赖项(在本例中为 src/main.cpp)。

无需cd进入源文件夹。