VS2012 lua脚本 require 问题

编译器: VS2012
目标:游戏UI使用c++.逻辑使用lua脚本
COCOS版本:2.2

现状:
可以在C++中读取hello.lua–>hello.lua可以读取同文件夹下的hello2.lua和lua自带的table.lua(换言之,hello.lua 有代码:require “hello2.lua” require“table”)。可是我希望hello.lua 可以读取std.lua(require“std”)。当我直接使用lua编程时没问题,但使用cocos2dx时会出现找不到 “std.lua”的情况。请问我是否需要另外做一些lua的设置?

把 std.lua 写成模块, module (“std”, package.seeall ) 这样你就可以require “std”了 可以试试

使用cocos2dx运行的时候,运行的根目录是Resources……如果你的hello.lua是放在luaScript的话,std也是在该目录下,如果直接在lua里面build的话,只需require “std”。但是如果使用cocos2dx运行的话,则需要require "luaScript/std"了啦……

print(package.path)
这句话打印出来的就是require可以发现的位置 也就是你的lua文件应该放的位置

假如你的环境是用vs调用lua脚本

1.那么首先在你的项目上 右键点击–>属性–>配置属性–>调试 将工作目录该为 “…\Resources”

2.在Resources文件夹下建立lua文件夹 所有的lua脚本都放这里

3.在AppDelegate.cpp中将
std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename(“hello.lua”);
改为
std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename(“lua/hello.lua”);

4.在hello.lua第一行加入
CCFileUtils:sharedFileUtils():addSearchPath(‘lua’)

然后你再require任何lua目录下的.lua文件都没问题了

感谢各位回答

其实std.lua 算是lua自带的lib, 不过并非像table那样,而是需要而外安装

不过问题已解决,其实是我的路径中应该用分隔符“\" 代替“\”

最好都使用’/’

mark~:14: