Ошибка при использовании premake с функцией «UseLibs» с OpenGL SDK - PullRequest
0 голосов
/ 26 ноября 2011

Я использую premake для создания новых проектов с использованием OpenGL sdk . Я пытаюсь собрать свой первый реальный проект, но у меня возникает ошибка при запуске команды premake4 vs2010. Я пытаюсь использовать функцию UseLibs для получения доступа к элементам OpenGL SDK, однако premake выдает ошибку, которая говорит:

"попытка вызвать глобальные UseLibs (нулевое значение)

Вот код Луа:

solution "OpenGL"
    configurations {"windows", "linux", "Debug", "Release"}
    project "MyProject"
        kind "ConsoleApp"
    language "c++"
files {"First OpenGL v3\*.cpp", "First OpenGL v3\*.h"}

UseLibs {"glimage", "glload", "freeglut", "glutil", "glmesh", "glfw", "glm"}

configuration "windows"
    defines "WIN32"
    links {"glu32", "opengl32", "gdi32", "winmm", "user32"}

configuration "linux"
    links {"GL"}

configuration "Debug"
    targetsuffix "D"
    defines "_DEBUG"
    flags "Symbols"

configuration "Release"
    defines "NDEBUG"
    flags {"OptimizeSpeed", "NoFramePointer", "ExtraWarnings", "NoEditAndContinue"};

Большая часть кода основана на том, что говорится в учебнике , поэтому я не уверен, почему я получаю эту ошибку. Я довольно новичок в этом, поэтому, если вы видите какие-либо другие проблемы, пожалуйста, сообщите мне. Спасибо.

1 Ответ

0 голосов
/ 26 ноября 2011

Позвольте мне процитировать то, на что вы ссылались:

Независимо от того, выполняет ли основной файл premake4.lua всю первую работу, вы должны в первую очередь выполнить эту инструкцию:

dofile("path/to/GLSDK/links.lua")

Я не вижу этой строки в вашем скрипте сборки Premake4.

Также нет необходимости включать и FreeGLUT и GLFW.Вы не можете использовать их обоих в одном приложении, так как они оба делают одно и то же.Они создают окна OpenGL.Я имею в виду, я думаю, вы могли бы использовать их обоих, но это вряд ли сработает.

Ваша программа использует одну или другую.Какой бы он не использовался, вы должны указать его в команде UseLibs.

Также:

configurations {"windows", "linux", "Debug", "Release"}

windows и linux не являются обычными, указанными пользователем конфигурациями, Это конфигурации ОС .Вы не перечисляете их в списке конфигурации решения;они являются частью системы.Перечисление их здесь может вызвать проблемы.

...