0

我正在使用 premake 使用 OpenGL sdk制作新项目。我正在尝试将我的第一个真实项目放在一起,但是当我运行 premake4 vs2010 命令时出现错误。我正在尝试使用 UseLibs 函数来访问 OpenGL sdk 元素,但是 premake 抛出了一个错误,上面写着:

“尝试调用全局‘UseLibs’(一个零值)

这是lua代码:

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"};

这里的大部分代码都是基于它在教程中所说的,所以我不确定我为什么会收到这个错误。我对此很陌生,所以如果您发现任何其他问题,请告诉我。谢谢。

4

1 回答 1

0

请允许我引用您链接到的内容:

不管主 premake4.lua 文件是否完成了所有工作,您应该做的第一件事就是执行以下指令:

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

我在您的 Premake4 构建脚本中没有看到该行。

此外,不需要同时包含FreeGLUT和 GLFW。您不可能在同一个应用程序中同时使用它们,因为它们都做同样的事情。他们创建 OpenGL 窗口。我的意思是,我想你可以同时使用它们,但它似乎不太可能工作。

您的程序使用其中一种。无论它使用哪一个都是您应该放入UseLibs命令中的那个。

还:

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

windows并且linux不是正常的、用户指定的配置。它们是操作系统配置。您没有在解决方案配置列表中列出它们;他们是系统的一部分。在此处列出它们可能会导致问题。

于 2011-11-26T07:28:27.990 回答