"找不到文件" makefile错误

时间:2015-10-12 20:47:54

标签: c++ gcc makefile

我正在尝试使用make编译C ++程序。我希望它从src文件夹中读取源文件。将目标文件放在build文件夹中,并将exe放在bin文件夹中。

我收到以下错误

  

/bin/wavfiletool.exe -g -O2 process_begin:CreateProcess(NULL,   /bin/wavfiletool.exe -g -O2,...)失败。 make(e = 2):系统   找不到指定的文件。

更新:问题是我把g ++放在我的编译器var而不是&(CC)... woops。

但现在它说g ++:致命错误:没有输入文件 我正在使用批处理文件运行make来设置环境变量。

SET PATH=C:\Make\GnuWin32\bin;C:\MinGW\bin
make %1

我的makefile如下。

CC := g++
CFLAGS := -g -O2
BIN_DIR := /bin
BUILD_DIR := /build
SRC_DIR := /src
TARGET := wavfiletool.exe
SOURCES  := $(wildcard $(SRC_DIR)/*.c)
OBJECTS  := $(SOURCES:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o)

$(BIN_DIR)/$(TARGET): $(OBJECTS)
    $(G++) $@ $(CFLAGS) $(OBJECTS)

$(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.c
    @$(CC) $(CFLAGS) -c $< -o $@

1 个答案:

答案 0 :(得分:2)

您尚未在任何位置设置$(G++)变量,因此$(BIN_DIR)/$(TARGET)目标的配方行正在尝试运行$@而不是编译器。

此外,您在该编译行上缺少-o,因此$(G++)设置为g++,您最终会正常运行:

g++ /bin/wavfiletool.exe -g -O2 $(OBJECTS)

这可能不是你想要的。

据说你可能不想将直接写入/bin。您对本地目录中的./bin目录的意思是bin吗?