我正在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/

10-11 22:47