makefile无法找到.o文件

时间:2015-04-18 05:54:58

标签: c++ object makefile

我制作文件非常新,但在浏览了大量资源后,我无法找出为什么我的make文件不起作用,它是针对C ++的,如下所示。

CC=g++
CFLAGS=-g -Wall -pedantic -ansi
SOURCES=commercial.cpp comRentals.cpp comSales.cpp property.cpp rentals.cpp residential.cpp resRentals.cpp resSales.cpp sales.cpp testPropertyA.cpp utility1.cpp
OBJECTS=$(SOURCES:.cpp=.o)
TARGET = runme

all: $(TARGET)

$(TARGET): $(OBJECTS) 
    $(CC) $(CFLAGS) -o $(TARGET) $(OBJECTS)

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

.PHONY: clean
clean:
    -del $(OBJECTS) $(TARGET).exe

从Windows 7命令行

运行时,会不断说出以下内容
C:\Users\Stat Phantom\Desktop\UNIVERSITY\C++\Assignment1\StartUpCode\TaskA>make
g++ -g -Wall -pedantic -ansi -c commercial.cpp -o commercial.o
process_begin: CreateProcess(NULL, g++ -g -Wall -pedantic -ansi -c commercial.cp
p -o commercial.o, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [commercial.o] Error 2

不知道这里发生了什么,请帮忙,这可能是非常简单的事情。

更新:删除了包含的标签并将$ @添加到.cpp.o:但是发生了同样的错误

1 个答案:

答案 0 :(得分:2)

您需要在-o之后指定输出文件名:

替换它:

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

用这个:

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

注意:$(INCLUDES)也需要删除。

编辑: 经过进一步检查后,实际问题似乎只是因为OP没有安装g ++。相关答案可在其他SO问题中找到:Compiling Small Gcc Project on Windows Using MinGW