使用make为我的程序

时间:2010-02-25 19:35:45

标签: c++ ubuntu makefile

我在不同的文件夹中有一堆文件:

/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。

4 个答案:

答案 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)

  1. 你应该检查一下你是否安装了 g ++ build-essential
  2. here可以深入了解makefile black magic consorsium
  3. 我认为make 1是目录感知的,因此键入mydirectory / myfile.cpp应该可以正常工作
  4. 其余的是基本的g ++命令,但1上的教程应该足够了:)
  5. 1执行makefile的程序

答案 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吗?)