342: Lua5.3で動作しない(ソースの書き換えにより動作)


最新状況

タイトル Lua5.3で動作しない(ソースの書き換えにより動作)
状態 完了
カテゴリ バグ, ドキュメント
作成日時 2015-09-11 20:11:57
最終更新日時 2016-04-01 02:35:43

履歴

1 | 2015-09-11 20:11:57 | 提案
tairi0717 at gmail.com
onscripter 20150820版にて、ArchLinux(x64)環境にてソースからコンパイルしたところ、
LUAHandler.cppにてg++がluaL_checkint関数が存在しないという旨のエラーを吐き、
makeコマンドが停止しました。

調べたところ、lua5.3ではluaL_checkint関数が削除されているとのことだったので、
luaL_checkint()を(int)luaL_checkinteger()にすべて置換したところ、その部分はコンパ
イルが通りました。

次に、リンカが-llua5.3が存在しないというエラーを吐いたので、Makefile.Linuxの
# optional: lua
DEFS += -DUSE_LUA
INCS += -I/usr/include/lua5.1
LIBS += -llua5.1
EXT_OBJS += LUAHandler$(OBJSUFFIX)
の部分を
# optional: lua
DEFS += -DUSE_LUA
INCS += -I/usr/include/lua5.3
LIBS += -llua5.3
EXT_OBJS += LUAHandler$(OBJSUFFIX)
と置換し、
/lib/liblua.so.5.3を
/lib/liblua5.3.soにコピーすることで、コンパイルが成功しました。

コンパイルしたファイルは、Luaの動作は試していませんがnscript.datの読み込みや再生
は問題なく出来るようです。

リンカの部分は私がluaについて詳しくないため力技で済ませていますが、恐らく
Makefile側でなんとか出来ると思います。

2 | 2016-03-28 08:30:04 | 修正済
ogapee at aqua.dti2.ne.jp
ご報告ありがとうございます。
また、対応がたいへん遅くなり申し訳ありません。

luaL_checkint 関数を luaL_checkinteger 関数に置き換えました。
Lua 5.1 でもコンパイルできます。

Makefile のライブラリのバージョン番号については、
使用者の環境に依存するため、現行のままとさせていただきます。

20160327以降で修正済みですのでご確認ください。

3 | 2016-03-30 22:59:42 | 修正済
tairi0717 at gmail.com
こちらの環境で確認したところ、コンパイル成功し、動作しました。
ありがとうございました。

4 | 2016-04-01 02:35:43 | 完了
ogapee at aqua.dti2.ne.jp
ご確認いただきありがとうございます。
それでは本報告は完了とさせていただきます

[リプライをつける]
Bug Tracking System 影舞 0.8.8
Powered by Ruby 1.8.7