【发布时间】:2018-10-13 05:46:39
【问题描述】:
我有一个包含 src 文件夹中文件的小项目:functionAdd.cpp;函数减法.cpp; main.cpp 和我的 Makefile。在包含文件夹中,我得到了 functionAdd.hpp 和 functionSubtract.hpp。首先我有一个错误,比如找不到这两个 .hpp 文件。在参考了这个answer 之后,我制作了新的 Makefile。所以我做了什么:
CC = g++
HEADER1 = home/administrator/Desktop/makefile-test/include/functionAdd.hpp
HEADER2 = home/administrator/Desktop/makefile-test/include/functionSubtract.hpp
CFLAGS = -c -Wall -Iinclude
all:calculation
calculation: main.o functionSubtract.o functionAdd.o
$(CC) main.o functionSubtract.o functionAdd.o -o calculation
main.o: main.cpp $(HEADER) $(HEADER2)
$(CC) $(CFLAGS) main.cpp
functionSubtract.o: functionSubtract.cpp $(HEADER2)
$(CC) $(CFLAGS) functionSubtract.cpp
functionAdd.o: functionAdd.cpp $(HEADER1)
$(CC) $(CFLAGS) functionAdd.cpp
clean:
rm -rf *o calculation
现在错误信息是: make: *** No rule to make target home/administrator/Desktop/makefile-test/include/functionSubtract.hpp,main.o需要。停下来。
【问题讨论】:
-
在
home/...路径前面添加/:/home/...。src和include是同一个父目录的子目录吗?如果是,则有比指定绝对路径更简单的解决方案。 -
@RenaudPacalet 是的,它们是同一父目录的子目录。即使我解决了我的问题,看到你提到的更简单的解决方案仍然很有趣。
标签: c++ linux ubuntu makefile g++