带有实现和头文件的Makefile

问题描述 投票:1回答:1

我在这里看到的每个问题都在处理比我复杂得多的用例。

我正在上一年级的编程课程,只是不明白我做错了什么。运行make时,我只会收到Circles is up to date消息。

我有三个文件:

main.cpp =>程序的入口点

CircleDriver.cpp =>一个实现文件

circle.h =>包含头文件类的头文件。

main.cpp取决于CircleDriver.cpp和circle.h,CircleDriver.cpp取决于circle.h

当前我的Makefile看起来像这样:

Circles: main.o
    g++ -std=c++11 -g -Wall main.o -o Circles

main.o: main.cpp
    g++ -std=c++11 -g -Wall -c main.cpp CircleDriver.cpp

clean:
    rm *.o Circles

我读到您不需要在compile命令中包含头文件,但是添加其他.cpp文件并不能解决我的问题。

我确定这是一个简单的问题,但是大约30分钟的谷歌搜索没有产生任何结果。

先谢谢您。

c++ makefile
1个回答
0
投票

我通常为我的Makefile做这样的事情:

%.o: %.cpp
    g++ -c -o $@ $< -std=c++11 -Wall

Circles: main.o CircleDriver.o
    g++ -o $@ $^ -std=c++11 -Wall

clean:
    rm *.o *~

这将为每个.cpp文件创建目标文件,然后使用这些目标文件来制作Circles。

© www.soinside.com 2019 - 2024. All rights reserved.