因此,我一直在尝试编译Hyperion 1.2程序,但是我总是遇到错误:“没有规则使“ createoutput.o”需要目标“ Src \ Crypter \ createoutput.ccp”,即使它存在。

CC = g++
SRC = Src\Crypter
BIN = .
OBJ = Obj
CFLAGS = -ansi -c -Wall -pedantic -O2 -m32

.PHONY:all
all: createoutput.o fileaccess.o peanalysis.o pe.o hyperion.o ostreamlog.o
    $(CC) -o $(BIN)\hyperion.exe $(OBJ)\hyperion.o $(OBJ)\pe.o $(OBJ)\peanalysis.o $(OBJ)\fileaccess.o $(OBJ)\createoutput.o $(OBJ)\ostreamlog.o

createoutput.o: $(SRC)\createoutput.cpp
    $(CC) $(CFLAGS) -o $(OBJ)\createoutput.o $(SRC)\createoutput.cpp

fileaccess.o: $(SRC)\fileaccess.cpp
    $(CC) $(CFLAGS) -o $(OBJ)\fileaccess.o $(SRC)\fileaccess.cpp

peanalysis.o: $(SRC)\peanalysis.cpp
    $(CC) $(CFLAGS) -o $(OBJ)\peanalysis.o $(SRC)\peanalysis.cpp

pe.o: $(SRC)\pe.cpp
    $(CC) $(CFLAGS) -o $(OBJ)\pe.o $(SRC)\pe.cpp

hyperion.o: $(SRC)\hyperion.cpp
    $(CC) $(CFLAGS) -o $(OBJ)\hyperion.o $(SRC)\hyperion.cpp

ostreamlog.o: $(SRC)\ostreamlog.cpp
    $(CC) $(CFLAGS) -o $(OBJ)\ostreamlog.o $(SRC)\ostreamlog.cpp

.PHONY:clean
   clean:
   del $(BIN)\hyperion.exe && del $(OBJ)\*.o


这是makefile文件...

我意识到这个问题已经问了很多遍了,但是即使经过大约四个小时的搜索,我仍然找不到任何答案。我尝试用制表符替换空格,并检查了语法。这些文件确实位于SRC文件夹中,所以我有些绝望。

最佳答案

您必须在makefile的路径名中始终使用正斜杠,而绝不能使用反斜杠。

关于c++ - 没有规则制定目标(Hyperion),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34974949/

10-11 00:24