2012-03-05 4 views
2

私は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 
+0

あなたのbuilditスクリプトは複雑すぎます。 libtoolize、aclocalなどを明示的に呼び出さないでください。代わりに、単にautoreconf -i –

+0

を呼んでください。あなたのAC_INITの使い方は極端に古いものです。最近のautoconfでは、AC_INITは3つの引数を取るべきです:プロジェクト名、バージョン、接点。どのバージョンのautoconfを使用していますか? –

+0

AM_PROG_LIBTOOLはもう使用しないでください。代わりにLT_INITを使用してください。 –

答えて

0

あなたのもの:Makefile.am

OgreApp_LIBADD= -llib1 -llib2 

これは役に立ちますか?

編集:-llib1 -llib2OgreApp_LDADD=...行に追加してみてください。自分自身はわかりません。

+0

OgreApp_LDADDを試行するとエラーが発生します。 OgreApp_LDADD = $(OGRE_LIBS)$(OIS_LIBS)/usr/local/lib/libBulletCollision.so /usr/local/lib/libBulletDynamics.so /usr/local/lib/libBulletMultiThreaded.soこの結果、LDADDにファイルを追加します。箇条書きのサンプルヘッダーファイルを含めることができません – daedalic

2

は弾丸のために、あなたはautocongマクロPKG_CHECK_MODULESで使用することができ、システムにインストールさbullet.pcファイルがあるはずです、同じようにOGREとOISが含まれています:

# in configure.ac 
PKG_CHECK_MODULES(BULLET, [bullet]) 

# in Makefile.am 
OgreApp_CXXFLAGS= $(OGRE_CFLAGS) $(OIS_CFLAGS) $(BULLET_CFLAGS) 
OgreApp_LDADD= $(OGRE_LIBS) $(OIS_LIBS) $(BULLET_LIBS) 


あなたがより多くを追加する場合
# in configure.ac 
PKG_CHECK_MODULES(DEPENDENCIES, [OGRE >= 1.2 OIS >= 1.0 bullet]) 

# in Makefile.am 
OgreApp_CXXFLAGS= $(DEPENDENCIES_CFLAGS) 
OgreApp_LDADD= $(DEPENDENCIES_LIBS) 

そしてジャック・ケリーはコメントに書いたようにあなたはPKG-config設定を持っている場合、>(2010年発売)= 0.24、あなたはドン

」:無条件の依存関係は、あなたがこのようにそれらをグループ化することによって、両方のファイルを簡素化したい場合がありますtはを使用する必要があります PKG_CHECK_MODULEの後の。

+1

'PKG_CHECK_MODULES'で設定された変数を' AC_SUBST'しないでください。すでに完了しています。 –

関連する問題