1

lua5.1.5とlsqlite3-0.8.1をビルドしました。それらはすべて私のRedHatLinuxでうまく動作します。

次に、それらをMIPS開発ボードに移植しました。luaおよびその他のモジュール(luafilesystem、md5、cgilua、wsapiなど)は正常に動作します。しかし、lsqlite3は機能しません。

luaコマンドラインでrequire( "lsqlite3")を実行すると、以下のエラーメッセージが返されます。

lua

Lua 5.1.5 Copyright(C)1994-2012 Lua.org、PUC-Rio

require( "lsqlite3")do_page_fault()#2:00000000からの無効な読み取りアクセスのためにSIGSEGVをluaに送信(epc == 00000000、ra == 2ac36144)セグメンテーション違反

誰かが私にそれを修正するための助けを与えることができますか?ありがとう!

この問題の解決にはほとんど進展がありませんでした。gccコンパイルオプション'-Wl、-E'を使用してLUAを再構築し、後でlsqlite3を再構築しました。luaコマンドラインでrequire( "lsqlite3")を実行しましたが、メッセージが出力されませんでした。他のデータベース操作コマンドを実行し続けたところ、すべて正常に実行されたことがわかりました。問題は解決したようですので、とても嬉しいです。しかし、別のもっと奇妙な問題が発生しました。

文require( "lsqlite3")をファイルに入れて、次のようにファイルを実行するとします。

luaファイル

それでも次のようなエラーメッセージが出力されます。

do_page_fault()#2:2ada054cからの無効な読み取りアクセスのためにSIGSEGVをluaに送信します(epc == 2ada054c、ra == 2abdceac)

より多くのデータベース操作文をファイルに入れてから、このファイルをluaで実行するとします。Luaはクエリ操作の正しい結果を提供し、テーブルに値を正しく挿入できますが、常に上記のエラーメッセージを出力します。

luaコマンドラインインターフェイスでファイル内の文を1つずつ実行すると、このエラーメッセージが出力されません。

'require'関数を実行するとエラーメッセージが表示されるようです。しかし、require( "lfs")をファイルに入れて、このファイルをluaで実行すると、エラーメッセージが出力されません。

私は、luaコマンドライン実行とluaスクリプトの違いが何であるかを混乱させています。

4

1 に答える 1

0

lsqlite3.cwheresqlite_int64が使用される場所は 3 つあります(long long直接ではありません)。sqlite3 をビルドすると、64 ビット整数にいくつかの型が使用されます。lsqlite3 はsqlite3.h、型の定義に含めることで同じ型を使用します。

于 2012-10-06T15:59:16.783 に答える