2015-03-01 6 views
0

Я работаю с minko и сумел скомпилировать MINKO SDK правильно для 3 платформ (Linux, Android, HTML5) и построить все учебники/примеры. Перейдя к созданию моего собственного проекта, я выполнил инструкции о том, как использовать существующий проект скелета, а затем использовать существующий пример проекта.minko/lua issue: premake5.lua: 3: попытка индексирования глобального «minko» (значение nil)

(я считаю, что это ошибка в коде скелета на этой линии:

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 неделю назад. Сегодня я попытался создать новый проект в новой папке, но позвонил

скрипт/solution_gmake_gcc.sh и скрипт/чистый неудачу с этой ошибкой:

Минько-мастер/skel_tut/mycode/premake5.lua: 3: попытка индекса глобального 'Минко' (нилъ значение)

Сейчас на premake5.lua линии 3 есть такая строка: Минько .project.solution (PROJECT_NAME), однако синусоидальной я не знаком с Lua на всех, кто может пролить свет на вопрос? Что должно быть объявлено здесь, почему это внезапно неожиданно ...? (я все еще могу модифицировать, компилировать и запускать код, но я не могу, например, добавить дополнительные плагины)

PS: Как ни странно, ранее «рабочий» проект также терпит неудачу.

Спасибо.

ответ

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, который отвечает за включение системных файлов SDK, которые определяют все внутри пространства имен/таблицы Lua Lua. Вот почему вы получаете эту ошибку.

Я думаю, что вы скопировали один из примеров/tutorials premake5.lua файл вместо того, чтобы изменять тот, который предоставляется скелетом. Презентационный файл-пример примеров/учебников отличается от того, что они включены в файлы префикса SDK. Но ваше приложение premake5.lua делает «противоположное»: оно включает файлы conf conf SDK, а не их включение.

Лучшей практикой является отредактирование копии вашего приложения скелета premake5.lua (вместо копирования/вставки одного из примеров/учебников).

+0

Большое спасибо, это была моя проблема. Поскольку проект скелета не компилировался, я взял файлы mininko-tutorial-06-load-3d-файлы и работал оттуда. (странно это сработало на прошлой неделе: -P) Поскольку изменение - это всего лишь одна строка, я только что изменил скелет main.cpp и получил его работу и всегда будет использовать его, когда я хочу начать новый проект. Опять же, merci :-) – Jeux

0

(I believe there is an error in the skeleton code at this line :

Это возможно. Наш сервер сборки не тестирует скелетный код. Это ошибка, которую мы исправим как можно скорее, чтобы убедиться, что она работает правильно.

script/solution_gmake_gcc.sh and script/clean failed with this error:

minko-master/skel_tut/mycode/premake5.lua:3: attempt to index global 'minko' (a nil value)

Не могли бы вы скопировать/вставить файл premake5.lua? Также, какое значение вы задали для env var MINKO_HOME? Возможно, вы переместили SDK ...

Обратите внимание, что вместо установки глобального env var MINKO_HOME вы также можете установить соответствующую константу LUA в самом начале вашего файла premake5.lua.

+0

Спасибо за быструю обратную связь! Это содержание premake5.lua (взято из примера): ИМЯ_ПРОЕКТА = path.getname (os.getcwd()) minko.project.application ("Минько-tutorial-" .. ИМЯ_ПРОЕКТА) \t файлы { \t \t "ЦСИ/** каст", \t \t "ЦСИ/** HPP.", \t \t "актив/**" \t} \t IncludeDirs { "ЦСИ"} \t - плагины \t minko.plugin.enable ("sdl") \t minko.plugin.enable ("assimp") \t minko.plugin.enable ("JPEG") \t minko.plugin.enable ("пули") \t minko.plugin.enable ("PNG") \t --html overlay \t minko.plugin.enable ("html-overlay") MINKO_HOME все тот же. Вы думаете, что lua не может найти MINKO_HOME и тем самым создать проблему? – Jeux

+0

Мне нужен premake5.lua ВАШЕГО проекта. Не один из другого примера. –

+0

Да, это тот, который использовался моим проектом, вдохновил, но изменил версию одного из проектов скелета. (добавлено assimp, html-overlay, включение jpeg, bullet ...) – Jeux