Macでtolua++をビルドする

こんにちは。ヤマヤタケシです。
ランキングに挑戦中です。クリックしてやってください。
人気ブログランキングへ

luaの本

  • 暑いっすね!

もう、暑さのせいなんでしょうね。
無性に、Macでtolua++を動かしたくなりました。
C++でLuaを使うなら、お供にtolua++。
Luaをしらない!?→「Luaは良い言語だなぁ」を読んで!すぐすぐ。

  • tolua++をビルド

tolua++を、かっこつけて、コマンドラインでダウンロードします。
wget http://www.codenix.com/~tolua/tolua++-1.0.93.tar.bz2

展開!
tar xvfj tolua++-1.0.93.tar.bz2

なに?sconsが必要だと!?brewにあるかな?

brew install scons

あった!

実行
scons

くぅ、エラーが・・・。
ld: library not found for -llualib

luaのライブラリが見つからないってことかな。
てか、ない。
brew install lua
で、入るのはライブラリファイルがdylibだけみたい。
しょうがないから、オリジナルからビルドしてみる。

  • しょうがないからLuaをインストールだ!

再び、かっこつけて、コマンドラインで取得。
wget http://www.lua.org/ftp/lua-5.1.5.tar.gz

展開
tar xvfz lua-5.1.5.tar.gz

あれをしようとしたら、これがひつようで、うまくいかなくて、あーしてこーして。。。
こうやって、深みに入っていくんですね。
わかります。

ビルドしやがれ!
make
Please do ‘make PLATFORM’ where PLATFORM is one of these:
aix ansi bsd freebsd generic linux macosx mingw posix solaris
See doc/readme.html for complete instructions.

Makefileをいじれと書いてありますね。

PLAT= none

PLAT= macosx
に変更しました。

さらに、インストール先を
INSTALL_TOP= /usr/local
だったのを、
INSTALL_TOP= ~/local
に変更しましたよ。

再びのmake

うまく通ったようです!

さらに
make install

~/localにコピーされました!

  • ということで、tolua++の件に戻ります。

config_posix.py
にさっきインストールしたlibのある場所追加しましす。
LIBPATH = [ ‘~/local/lib’ ]

そして
scons

ld: library not found for -llualib
..

むー、liblualib.a がみあたらない・・・。
とはいえ、さっきのluaのインストールにそれはなかったし、もういらないんじゃ???
ってことで、config_posix.pyをいじります。

#LIBS = [‘lua’, ‘lualib’, ‘m’]
LIBS = [‘lua’, ‘m’]


scons
warningはでてるけど、通ったようだ。

  • 実行!

bin/tolua++

どばっ!
Command line options are:
-v : print version information.
-o file : set output file; default is stdout.
-H file : create include file.
-n name : set package name; default is input file root name.
-p : parse only.
-P : parse and print structure information (for debug).
-S : disable support for c++ strings.
-1 : substract 1 to operator[] index (for compatibility with tolua5).
-L file : run lua file (with dofile()) before doing anything.
-D : disable automatic exporting of destructors for classes that have
constructors (for compatibility with tolua5)
-W : disable warnings for unsupported features (for compatibility
with tolua5)
-C : disable cleanup of included lua code (for easier debugging)
-E value[=value] : add extra values to the luastate
-t : export a list of types asociates with the C++ typeid name
-q : don’t print warnings to the console
-h : print this message.
Should the input file be omitted, stdin is assumed;
in that case, the package name must be explicitly set.

できた!
これでluaとc++の世界がつながります。