我正在Mac OS X中使用C ++尝试lua脚本。我在寻找一种使程序返回当前工作目录的方法。 getcwd没问题,但是后来我想到了一件事:
我的foo.lua仅停留在其初始路径。当我编译程序时,它不会被复制到build / Debug目录中。当然,我可以在那儿抓住我的脚本,但这是不切实际的。 XCode或任何IDE应该将资源携带到构建区域。 XCode使用iPhone应用程序自动执行此操作,但这似乎是另一回事。对于这种情况,如何命令XCode将相应资源放入构建目录?
int main (int argc, char * const argv[]) {
...
...
luaL_dofile(luaVM,"/Users/yourNameHere/Desktop/LuaSandbox/LetsTryLua/foo.lua");
//typing the whole absolute path here is just ugly and impractical.
...
...
printf("working directory: %s", buffer);
//output is: working directory: /Users/yourNameHere/Desktop/LuaSandbox/LetsTryLua/build/Debug
...
...
最佳答案
您可能不希望使用NSBundle API来找到Lua脚本的路径,而是对其进行硬编码:
NSBundle * mainNSBundle = [NSBundle mainBundle];
NSString * luaFilePath = [mainNSBundle pathForResource:@“ foo”
ofType:@“ lua”
inDirectory:NULL
forLocalization:NULL];
luaL_dofile(luaVM,[luaFilePath UTF8String]);
这将在捆绑包的文件夹中找到它(如果您按照上述提示将“复制捆绑包资源”构建步骤添加到目标中,则可以找到该文件夹。
关于c++ - 如何使XCode将所需的资源放在“build”文件夹中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1585056/