我在不同的文件夹中有一堆文件:
/ai/client.cpp # contains the main function /ai/utils/geometry.h /ai/utils/geometry.cpp /ai/world/world.h /ai/world/world.cpp /ai/world/ball.h /ai/world/ball.cpp /ai/world/bat.h /ai/world/bat.cpp
如何编写makefile来编译这个程序?我正在使用Ubuntu。
答案 0 :(得分:2)
Make是一个多功能工具,使用它有许多不同的细微之处。但是,您可以保持简单:
OBJ := ai/utils/geometry.o ai/world/world.o ai/world/ball.o ai/world/bat.o
all: ai/client
.PHONY: all # specific to GNU make, which is what Ubuntu provides
ai/client: ai/client.o $OBJ
# this rule means each .cpp file depends on its corresponding header
# and, since the .o files depend on .cpp files (a builtin make rule),
# they will be recompiled if the headers change
#
# you can also get more complex and generate dependencies automatically
# look at the -MM option for gcc, for example
%.cpp: %.h
答案 1 :(得分:0)
答案 2 :(得分:0)
它的工作谢谢你们每一个人的宝贵意见 特别为链接 在上一篇文章中,我忘了在第6行写下client.cpp文件 但是我的错误是我在client.cpp中包含了一个错误的标题,它永远找不到它。
答案 3 :(得分:-1)
谷歌的第一个结果:http://www.opussoftware.com/tutorial/TutMakefile.htm
似乎是一个非常好的教程。应该很容易理解,请注意他们谈论的是GNU版本的make,这是最常用的。如果您使用基于BSD的操作系统(例如OpenBSD,NetBSD或FreeBSD,那么还有BSD版本......有人知道Mac OSX吗?)