c++ - makefile 编译问题

标签 c++ makefile

我的 makefile 有点问题 当我尝试 make 时出现错误:

no rule to make the target main.o

但我看不到我的错误,实际上它是我几年前制作的模板 Makefile,它是一个 cpp 项目。

(我有另一个错误:/usr/bin/ld: can't find Sources/: file format not know,我想我在通配符方面做错了)

NAME = Pretorian

SRCDIR = ./Sources/
HDDIR = ./Include/

SRCS = $(SRCDIR)$(wildcard *.cpp)
OBJ = $(SRCS:.cpp=.o)

CC = g++

RM = rm -f
ECHO = echo -e

CFLAGS += -W -Wall -Werror -ansi -pedantic
HFLAGS = -I$(HDDIR)
LDFLAGS =

%.o: %.cpp
        $(CC) -o $@ -c $< $(CFLAGS)

$(NAME): $(OBJ)
        @$(CC) $(CFLAGS) $(HFLAGS) -o $(NAME) $^ $(LDFLAGS)
        @$(ECHO) '\033[0;32m> Compiled Without error\033[0m'

all: 
        $(NAME)

clean:
        $(RM) $(OBJ)
        @$(ECHO) '\033[0;33m> Directory cleaned\033[0m'

fclean: clean
        $(RM) $(NAME)
        @$(ECHO) '\033[0;33m> Remove executable\033[0m'

re: fclean all

最佳答案

这似乎对我有用:

SRCS = $(wildcard $(SRCDIR)*.cpp)

关于c++ - makefile 编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32606092/

相关文章:

c++ - `const int a = 1;` 是 `a` 常量表达式,如果 `a` 有自动存储持续时间

c++ - 生成文件错误 : undefined reference to main

c - make : *. h 没有那个文件或目录

c - 包含多个文件的 Makefile 总是构建一切

c++ - 聚合 ‘BIGNUM foo’ 类型不完整,无法定义

c++ - 如何修改函数中的字符串?

c++ - 当所有类型未知时从基类重载函数

makefile - 如何在 GNU Make 中以编程方式定义目标?

c++ - Qt 为除一个对象之外的所有对象设置样式

c++ - 使用指针运行时无法编译