こんにちは。ヤマヤタケシです。
ランキングに挑戦中です。クリックしてやってください。
→人気ブログランキングへ
- 暑いっすね!
もう、暑さのせいなんでしょうね。
無性に、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++の世界がつながります。