我正在努力创建一个有效的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)
我的错误
制作:***没有规则将目标main.cpp', needed by
设为主要'。停止。
修改
在我的main.cpp里面,我在顶部有这一行,我的Makefile可以找到它:#include "pugixml.hpp"
答案 0 :(得分:2)
我认为这应该适合你。
所有路径都是相对于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
进入源文件夹。