Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
makefile找不到.o文件 我是个很新的文件,但是在浏览了一系列的源之后,我无法发现为什么我的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_C++_Object_Makefile - Fatal编程技术网

makefile找不到.o文件 我是个很新的文件,但是在浏览了一系列的源之后,我无法发现为什么我的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

makefile找不到.o文件 我是个很新的文件,但是在浏览了一系列的源之后,我无法发现为什么我的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,c++,object,makefile,C++,Object,Makefile,不知道这里发生了什么,请帮帮我,可能很简单 更新:删除了包含的标记并将$@添加到.cpp.o:但是发生了相同的错误您需要在-o之后指定输出文件名: 替换此项: .cpp.o: $(CC) $(CFLAGS) $(INCLUDES) -c $< -o .cpp.o: $(CC)$(CFLAGS)$(包括)-c$

不知道这里发生了什么,请帮帮我,可能很简单


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

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

替换此项:

.cpp.o:
    $(CC) $(CFLAGS) $(INCLUDES) -c $< -o
.cpp.o:
$(CC)$(CFLAGS)$(包括)-c$<-o
为此:

.cpp.o:
    $(CC) $(CFLAGS) -c $< -o $@
.cpp.o:
$(CC)$(CFLAGS)-c$<-o$@
注意:
$(包括)
也需要删除

编辑:
经过进一步检查,实际问题似乎只是因为OP没有安装g++而已。在另一个SO问题中可以找到相关的答案:

您不应该将头文件传递给编译器调用,而应该将它们与
一起使用#包括“xxx.h”
我在.cpp文件中这样做,我在make文件中看到了引用,通常您让编译器创建一个依赖文件(
.d
)使用
-MM
选项族列出标题,并将此选项包含在makefile中,以捕获由于标题更改而需要的重新编译。是否需要?如果是这样的话,这会解决这个问题吗?是的,如果你不想惊讶于如果某些东西发生了变化,为什么你的东西没有被重新编译的话。如前所述,您应该删除此
INCLUDES=$(SOURCES:.cpp=.h)
,并将其从编译器调用中删除。谢谢,我在安装code::blocks时确实安装了一个,但我想它尚未完全安装
.cpp.o:
    $(CC) $(CFLAGS) -c $< -o $@