【问题标题】:"Can not find file" makefile error“找不到文件”makefile 错误
【发布时间】:2015-10-13 04:57:29
【问题描述】:

我正在尝试使用 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++: fatal error: no input files 我正在使用设置环境变量的批处理文件运行 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 $@

【问题讨论】:

    标签: c++ gcc makefile


    【解决方案1】:

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

    此外,您在该编译行中缺少 -o,所以如果 $(G++) 正确设置为 g++,您最终会运行:

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

    这可能不是你想要的。

    说你可能也不想直接写到/bin。您的意思是 ./bin 表示本地目录中的 bin 目录吗?

    【讨论】:

    • ./bin?是linux吗。我在窗户上。我正在写入项目的 bin 目录。在项目主文件夹中,我有 bin 、 build 、 src 。
    • 对。视窗。然后完全放弃/ 我相信。虽然.\bin 也应该在cmd.exe/etc 中工作。我相信。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多