我想爲使用C++的Linux製作簡單的3D遊戲添加一些動態庫(.so文件)。這些動態庫用於使用Bullet物理引擎。使用automake和autoconf包括動態庫
我對如何使用automake和autoconf等知識非常有限,所以任何幫助將不勝感激。
如何修改下列任何文件以包含這些動態庫?
這裏是我的makefile.am:
noinst_HEADERS= BaseApplication.h Physics.h GameApplication.h
bin_PROGRAMS= OgreApp
OgreApp_CPPFLAGS= -I$(top_srcdir)
OgreApp_SOURCES= BaseApplication.cpp Physics.cpp GameApplication.cpp
OgreApp_CXXFLAGS= $(OGRE_CFLAGS) $(OIS_CFLAGS)
OgreApp_LDADD= $(OGRE_LIBS) $(OIS_LIBS)
EXTRA_DIST = buildit makeit
AUTOMAKE_OPTIONS = foreign
這裏是我的configure.ac:
AC_INIT(configure.ac)
AM_INIT_AUTOMAKE(SampleApp, 0.1)
AM_CONFIG_HEADER(config.h)
AC_LANG_CPLUSPLUS
AC_PROG_CXX
AM_PROG_LIBTOOL
PKG_CHECK_MODULES(OGRE, [OGRE >= 1.2])
AC_SUBST(OGRE_CFLAGS)
AC_SUBST(OGRE_LIBS)
PKG_CHECK_MODULES(OIS, [OIS >= 1.0])
AC_SUBST(OIS_CFLAGS)
AC_SUBST(OIS_LIBS)
AC_CONFIG_FILES(Makefile)
AC_OUTPUT
我也有一個buildit文件,設置在運動中的一切:
#!/bin/sh
rm -rf autom4te.cache
libtoolize --force --copy && aclocal && autoheader && automake --add-missing --force-missing --copy --foreign && autoconf
./configure && ./makeit
您的buildit腳本太複雜。不要明確地調用libtoolize,aclocal等。相反,只需調用autoreconf -i – 2012-03-05 21:44:56
您對AC_INIT的使用過於陳舊。在現代的autoconf中,AC_INIT應該有3個參數:項目名稱,版本,聯繫點。你使用的是什麼版本的autoconf? – 2012-03-05 21:46:14
AM_PROG_LIBTOOL不應再使用。改用LT_INIT。 – 2012-03-05 21:56:26