2015-10-12 38 views
0

我想编译一个使用make的C++程序。我希望它从src文件夹读取源文件。将目标文件放在生成文件夹中,然后将该exe文件放入bin文件夹中。“找不到文件”生成文件错误

我收到以下错误

/bin/wavfiletool.exe -g -O2 process_begin: CreateProcess(NULL, /bin/wavfiletool.exe -g -O2, ...) failed. make (e=2): The system cannot find the file specified.

UPDATE:问题是我把G ++在我的编译器变种,而不是&(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++) [email protected] $(CFLAGS) $(OBJECTS) 

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

回答

2

您没有设置$(G++)变量任何地方,所以对于$(BIN_DIR)/$(TARGET)目标配方线路试图运行[email protected],而不是编译器。

而且你对编译行缺少-o所以是$(G++)设置为g++正确,你最终会运行:

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

这可能不是你想要的。

说来你可能不希望直接写/bin无论是。你的意思是./binbin目录在本地目录?

+0

./bin?那是linux。我在窗户上。我正在写入我的项目的bin目录。在项目主文件夹中,我有bin,build,src。 – ScottF

+0

对。视窗。那么就完全放弃'/'我相信。虽然'。\ bin'也可以在'cmd.exe'/etc中使用。我相信。 –