我已经完成了什么:
我查看了其他具有类似问题的StackOverflow线程,但它们似乎都不适用于我的具体情况。我还仔细检查以确保正确的文件位于正确的位置(文件夹),并且所有内容都被正确命名。
这是我收到的错误:
[employee_xyz@petco.com]$ make
g++ -Wall -O2 -ansi -pedantic -o dog.cpp
g++: fatal error: no input files
compilation terminated.
make: *** [mscp.o] Error 4
这是有问题的makefile:
CC = g++
CFLAGS = -Wall -O2 -ansi -pedantic -Werror
TARGETS = dog dog.o collar.o
dog: dog.o collar.o
$(CC) $(CFLAGS) -o dog collar.o dog.o
dog.o: dog.cpp collar.h
$(CC) $(CFLAGS) -o dog.cpp
collar.o: collar.cpp collar.h
$(CC) $(CFLAGS) -o collar.cpp
clean:
-rm -f ${TARGETS}
以下是makefile引用的文件(它们都在同一目录中):
-collar.cpp
-collar.h
-makefile
-dog.cpp
我做错了什么?
答案 0 :(得分:2)
此
dog.o: dog.cpp collar.h
$(CC) $(CFLAGS) -o dog.cpp
collar.o: collar.cpp collar.h
$(CC) $(CFLAGS) -o collar.cpp
应该阅读
dog.o: dog.cpp collar.h
$(CC) $(CFLAGS) -c dog.cpp
collar.o: collar.cpp collar.h
$(CC) $(CFLAGS) -c collar.cpp
答案 1 :(得分:2)
尝试
$(CC) $(CFLAGS) - c collar.cpp -o compiledfilename
Compiledfilename是二进制文件的名称。
答案 2 :(得分:0)
我知道回答为时已晚。但这可能对其他人有所帮助。我遇到过同样的问题。我通过用 .hpp 文件替换 .h 文件来修复它。它工作了:)