2011-11-26 17 views
0

我使用premake使用OpenGL sdk来制作新项目。我试图把我的第一个真正的项目放在一起,但是当我运行premake4 vs2010命令时出现错误。我试图用UseLibs函数获得访问的OpenGL的SDK元素,但是premake抛出它说的错误:使用OpenGL函数“UseLibs”使用premake时出错sdk

“试图调用全球‘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"}; 

很多这里的代码是基于它说什么做的tutorial所以我不知道为什么我收到这个错误我在这个相当新的,所以如果你看到任何其他问题,请告诉我。谢谢。

+0

“在教程上”这不是教程。这些是如何使用SDK的说明。 –

回答

0

请允许我引用自你链接到:

无论主premake4.lua文件是否完成了所有的工作,你应该做的第一件事就是执行这个指令:

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

我在Premake4构建脚本中看不到那条线。

此外,没有必要包括两个 FreeGLUT和GLFW。你不可能在同一个应用程序中使用它们,因为它们都做同样的事情。他们创建OpenGL窗口。我的意思是,我猜你可能会同时使用它们,但似乎不太可能。

您的程序使用其中一个或另一个。无论使用哪一个,都应该放在UseLibs命令中。

另外:

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

windowslinux都是不正常的,用户指定的,配置。 They're OS configurations。您不会在解决方案配置列表中列出它们;他们是系统的一部分。在此列出它们可能会导致问题。

+0

啊,我之前见过,之前做过,但由于某种原因,这次我跳过了它......可能是因为它是凌晨2点30分,我几乎不能读取我正在写的内容......可能应该前往床。再次感谢。关于两者的使用,只是为了测试并确保我可以访问每个库,我很快就不会在同一个项目中使用这两个库。 – user1032369