建立一个新的目录,然后把这三个文件拷贝到目录中,也把 Makefile 文件拷贝到目录中。之后,对 Makefile 的相关项目进行如下设置:
PROGRAM := hello # 设置运行程序名
SRCDIRS := . # 源程序位于当前目录下
SRCEXTS := .c .cxx # 源程序文件有 .c 和 .cxx 两种类型
CFLAGS := -g # 为 C 目标程序包含 GDB 可用的调试信息
CXXFLAGS := -g # 为 C++ 目标程序包含 GDB 可用的调试信息
由于这个简单的程序只使用了 C 标准库的函数(puts),所以对于 CFLAGS 和 CXXFLAGS 没有过多的要求,LDFLAGS 和 CPPFLAGS 选项也无需设置。
经过上面的设置之后,执行 make 命令就可以编译程序了。如果没有错误出现的话,./hello 就可以运行程序了。
如果修改了源程序的话,可以看到只有和修改有关的源文件被编译。也可以再为程序添加新的源文件,只要它们的扩展名是已经在 Makefile 中设置过的,那么就没有必要修改 Makefile。
例二 GTK+ 版 Hello World 程序
这个 GTK+ 2.0 版的 Hello World 程序可以从下面的网址上得到:http://www.gtk.org/tutorial/c58.html#SEC-HELLOWORLD。当然,要编译 GTK+ 程序,还需要你的系统上已经安装好了 GTK+。
跟第一个例子一样,单独创建一个新的目录,把上面网页中提供的程序保存为 main.c 文件。对 Makefile 做如下设置:
PROGRAM := hello # 设置运行程序名
SRCDIRS := . # 源程序位于当前目录下
SRCEXTS := .c # 源程序文件只有 .c 一种类
CFLAGS := `pkg-config --cflags gtk+-2.0` # CFLAGS
LDFLAGS := `pkg-config --libs gtk+-2.0` # LDFLAGS
这是一个 C 程序,所以 CXXFLAGS 没有必要设置——即使被设置了也不会被使用。
编译和连接 GTK+ 库所需要的 CFLAGS 和 LDFLAGS 由 pkg-config 程序自动产生。
现在就可以运行 make 命令编译、./hello 执行这个 GTK+ 程序了。