4

IDE およびデバッグ ツールとして使用するために LuaEdit をダウンロードしましたが、最も単純なことでも使用できません。2 つのファイルを含むソリューションを作成しました。これらはすべて同じフォルダーに保存されています。私のファイルは次のとおりです。

--startup.lua

require("foo")

test("Testing", "testing", "one, two, three")


--foo.lua

foo = {}

print("In foo.lua")

function test(a,b,c) print(a,b,c) end

これは、C++ コンパイラで埋め込みコードを介してアクセスすると正常に動作しますが、LuaEdit で同じコードを使用しようとすると、3 行目でクラッシュしrequire("foo")、次のエラーが表示されます。

module 'foo' not found:
no field package.preload['foo']
no file 'C:\Program Files (x86)\LuaEdit 2010\lua\foo.lua'
no file 'C:\Program Files (x86)\LuaEdit 2010\lua\foo\init.lua'
no file 'C:\Program Files (x86)\LuaEdit 2010\foo.lua'
no file 'C:\Program Files (x86)\LuaEdit 2010\foo\init.lua'
no file '.\foo.lua'
no file 'C:\Program Files (x86)\LuaEdit 2010\foo.dll'
no file 'C:\Program Files (x86)\LuaEdit 2010\loadall.dll'
no file '.\battle.dll'

これらのファイルをソリューションに追加する前に作成しようとしても、同じエラーが発生します。不足している設定はありますか?IDE/デバッガーがあれば素晴らしいのですが、リンクされた機能を実行できなければ意味がありません。

4

2 に答える 2

3

問題はおそらく、Lua ファイルが のパスにないことですpackage.path(C ファイルの場合、これは ですpackage.cpath)。

私の推測では、ファイルがあるディレクトリで LuaEdit プログラムが起動されていないため、たとえば.\foo.lua.

これには3つの簡単な解決策があります(愚かなものからより賢いものまで):

  • LuaEdit が ./ と見なすパスを見つけて、そこにファイルを置きます。
  • 適切なディレクトリ (ファイルを含むディレクトリ) でターミナルを開き、そこから LuaEdit を実行します。
  • を実行する前にpackage.path、ファイルがあるパスを追加しますpackage.cpathrequire
于 2012-06-03T10:36:34.363 に答える
3

あなたは置く必要があるかもしれません:

lua package.path = package.path..";c:/path/to/my/files/?.lua"

ファイルの先頭で、require の前に (jpjacobs が示すように)。LuaEdit 自体からこれを提供する方法が見つかりませんでした。フルパスを使用してスクリプトを実行しているように見えますが、現在のディレクトリはIDEの起動時の設定のままです。アプリケーションフォルダーからのフルパスを使用して LuaEdit を実行すると、変更しなくても正常に動作するはずです。package.path

IDE 自体は独自のモジュール/ライブラリで正常に動作しますが、実行するアプリケーションでそれらを利用できるようにするわけではありません。

(恥知らずなプラグイン) それでも LuaEdit に満足できない場合は、代わりにZeroBrane Studio Lua IDEを提供します。これは同じ wxLua フレームワークに基づいていますが、もう少し多くの機能を提供し、この特定の問題はありません。直面している。また、リモート デバッグもサポートしているため、Lua スクリプトをアプリケーションから直接デバッグできるはずです。

于 2012-06-10T03:38:52.337 に答える