簡體   English   中英

makefile無法找到.o文件

[英]makefile cant find .o files

我對制作文件非常陌生,但是在瀏覽了很多資源之后,我無法找出為什么我的制作文件不起作用的原因,它是針對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添加了$ @:但是發生了相同的錯誤

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

替換為:

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

有了這個:

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

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

編輯:進一步檢查后,實際問題似乎僅僅是因為OP沒有安裝g ++。 相關的答案在另一個SO問題中可用: 使用MinGW在Windows上編譯Small Gcc項目

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM