我正在尝试创建一个将编译两个文件的生成文件: -main.cpp -queue.h 在头文件内部,我有一个模板队列类的完整实现。主文件包括头文件。
我可以通过在终端(在 Mac 上)中输入以下代码来测试此代码:
g++ -c main.cpp
g++ -o queue main.o
我可以毫无问题地运行程序(./queue)。
现在对于这个项目,它需要通过在终端中输入“make”来编译。对于以前的项目,我使用了这样的东西:
all: sDeque
sDeque: sDeque.o sDeque_main.o
g++ -o sDeque sDeque.o sDeque_main.o
sDeque.o: sDeque.cpp sDeque.h
g++ -c sDeque.cpp
sDeque_main.o: sDeque_main.cpp sDeque.h
g++ -c sDeque_main.cpp
clean:
rm sDeque sDeque.o sDeque_main.o
但是上面的例子有一个 main.cpp、sDeque.cpp 和 sDeque.h。这很有效,因为我可以创建目标文件,但我认为我不能仅从头文件创建目标文件。
对于手头的任务,我只有主文件和头文件(因为它是一个模板类)。我如何为此制作makefile?