C++ 中lua require 失败

错误描述:C++中调用lua脚本,lua中有require “lfs”。出现以下错误。
1031 16:19:36 298 [0x00000001]Execute script failed, errno=2, msg=./lua/cdmatransfer.lua:4: module ‘lfs’ not found:
no field package.preload[‘lfs’]
no file ‘.\lfs.lua’
no file ‘C:\Documents and Settings\suntek\桌面\新建文件夹\lua\lfs.lua’
no file ‘C:\Documents and Settings\suntek\桌面\新建文件夹\lua\lfs\init.lua’
no file ‘C:\Documents and Settings\suntek\桌面\新建文件夹\lfs.lua’
no file ‘C:\Documents and Settings\suntek\桌面\新建文件夹\lfs\init.lua’
no file ‘../lua/lfs.lua’
no file ‘../lua/lfs/init.lua’
no file ‘./lfs.lua’
no file ‘.\lfs.dll’
no file ‘.\lfs51.dll’
no file ‘C:\Documents and Settings\suntek\桌面\新建文件夹\lfs.dll’
no file ‘C:\Documents and Settings\suntek\桌面\新建文件夹\lfs51.dll’
no file ‘C:\Documents and Settings\suntek\桌面\新建文件夹\clibs\lfs.dll’
no file ‘C:\Documents and Settings\suntek\桌面\新建文件夹\clibs\lfs51.dll’
no file ‘C:\Documents and Settings\suntek\桌面\新建文件夹\loadall.dll’
no file ‘C:\Documents and Settings\suntek\桌面\新建文件夹\clibs\loadall.dll’

但是单独执行lua脚本是没有任何问题的。
以前遇到过类似的问题,是因为路径的问题,require配置文件出现错误。所以,一直在搞路径的问题。然而此次并不是。

解决方法:
由于C++调用lua脚本,同级目录下只有lua5.1.dll。而改dll中并没有包含lfs所需要的一切文件。所以,需要在同级目录下放置一个lfs.dll动态库即可。。

你可能感兴趣的:(Lua)