我只打算介绍如何自动生成makefile文件过程,给新手一个直接的了解,不打算讲原理,毕竟原理会慢慢明白的。

目标:  自动生成makefile 文件,把一个Box2D_Lite 编译,Box2D_Lite 精简版的2D物理引擎,代码量很少,适合学习原理。

环境: Linux  2.6.32-5-amd64 x86_64 GNU/Linux ;

已经有OpenGl环境,Linux 可以安装mesa 一个开源的OpenGL 实现;

gcc 编译环境 g++ 有用到;

autoscan、aclocal、autoconf、autoheader、automake 这些工具。

链接: Box2D_Lite.zip   http://code.google.com/p/box2d/downloads/list  

   

    解压后文件如下,很明显,原本有有自带的win 下vs 工程项目文件,但是没有makefile,在linux下需要我们自己编写makefile文件,这里我们用自动生成。

输入autoscan 运行,可以发现多出了几个文件,有configure.scan、autoscan.log 。

 

接下来,我们要修改扫描后生成的配置文件,configure.scan ,先重命名为configure.in,然后修改配置,配置如下。



配置前 configure.in 

 

配置后,注意红色部分是修改的地方,绿色部分是新增的:


现在可以输入aclocal,又多出了几个文件,如下:


现在,新建makefile.am文件,并编辑,如下,内容,简单的说就是配置一下编译的参数:


接下来,输入autoheader ,生成config.h.in  、config.h文件,如下,



输入autoconf  如下:


输入automake ,这里需要添加一下参数automake --add-missing ,结果如下:


可以看到有configure 生成了,


接下来输入 ./configure ,进行最后的makefile生成,如果没出错的话就像下面一样:



看到有个叫 Makefile 的文件生成了,你兴奋不?最后就可以编译了,运行make:


结果发现了几个错误,没事,修改一下源代码,在main.cpp 里面修改 #include "GL/glut.h“,增加#include <stdio.h>,然后重新make,


先总结一下,我们输入的命令有  autoscan aclocal autoheader autoconf automake

上一张图 从ibm论坛那边搞过来的,


发现编译通过了有一个叫box 的东西生成,就是我们之前配置文件给他取的名字,来运行一下,看效果,


Logo

更多推荐