0

我正在使用minko并设法为 3 个平台(Linux、Android、HTML5)正确编译 MINKO SDK 并构建所有教程/示例。继续创建我自己的项目,我按照说明如何使用现有的骨架项目,然后使用现有的示例项目。

(我相信这一行的骨架代码有错误:

auto sceneManager = SceneManager::create(canvas->context());    //does not compile

示例文件如下所示:

auto sceneManager = SceneManager::create(canvas);   //compile and generate binary

我能够通过修改 premake5.lua(以包含更多插件)并在一周前调用 script/solution_gmake_gcc.sh 来生成 make 解决方案来做到这一点。今天,我试图在一个新文件夹中创建一个新项目,但调用

script/solution_gmake_gcc.shscript/clean因以下错误而失败:

minko-master/skel_tut/mycode/premake5.lua:3:尝试索引全局“minko”(一个零值)

现在在 premake5.lua 第 3 行有这一行:minko .project.solution(PROJECT_NAME),但是我完全不熟悉 lua,任何人都可以解释这个问题吗?这里应该声明什么,为什么突然失败了……?(我仍然可以修改、编译和运行代码,但我不能例如添加更多插件)

PS:奇怪的是,以前的“工作”项目在这一点上也失败了。

谢谢。

4

2 回答 2

0

(我相信这一行的骨架代码有错误:

这是可能的。我们的构建服务器不测试骨架代码。这是一个错误,我们将尽快修复以确保其正常工作。

script/solution_gmake_gcc.sh 和 script/clean 因以下错误而失败:

minko-master/skel_tut/mycode/premake5.lua:3:尝试索引全局“minko”(一个零值)

你能复制/粘贴你的 premake5.lua 文件吗?另外,您为 MINKO_HOME 环境变量设置的值是多少?也许您已经移动了 SDK...

请注意,除了设置全局 MINKO_HOME env var,您还可以在 premake5.lua 文件的开头设置相应的 LUA 常量。

于 2015-03-01T14:10:32.687 回答
0
PROJECT_NAME = path.getname(os.getcwd()) 

minko.project.application("minko-tutorial-" .. PROJECT_NAME)

  files { "src/**.cpp", "src/**.hpp", "asset/**" }
  includedirs { "src" }

  -- plugins
  minko.plugin.enable("sdl")
  minko.plugin.enable("assimp")
  minko.plugin.enable("jpeg")
  minko.plugin.enable("bullet")
  minko.plugin.enable("png")
  --html overlay
  minko.plugin.enable("html-overlay") 

假设这确实是您的项目premake5.lua文件(下次请给我们代码标签),您应该include "script"在文件的开头有:

https://github.com/aerys/minko/blob/master/skeleton/premake5.lua#L1

如果您没有此行,它将不包括script/premake5.lua负责包含定义minkoLua 命名空间/表中所有内容的 SDK 构建系统文件的内容。这就是为什么你得到那个错误。

我认为您复制粘贴的示例/教程premake5.lua文件之一,而不是修改骨架提供的文件。示例/教程的 premake conf 文件不同,因为它们包含在 SDK premake 文件中。但是您的应用程序premake5.lua却“相反”:它包含 SDK conf 文件,而不是被它们包含。

最佳做法是编辑应用程序的骨架副本premake5.lua(而不是从示例/教程中复制/粘贴一个)。

于 2015-03-01T15:25:51.643 回答