[英]Running OpenGL without installing?
我正在写一个基于OpenGL的游戏。 它仅包括以下两个库:glew,glfw3。 为了运行它,用户显然必须安装了OpenGL,这是我想绕过的假设。 我已经在游戏目录中收集了所有适当的二进制文件,并尝试在本地链接到这些库,但是编译器声称未定义其所有功能的引用。 我是在做错事还是只是不可能? 我正在使用Windows,但由于相同的原因在Linux上失败。
OpenGL不是您安装的库,而是作为驱动程序的一部分实现的API。 您的编译器抱怨符号无法解析与最终用户计算机上的情况完全无关。 在您的情况下,听起来只是您没有告诉编译器/链接器要链接到程序二进制文件的库和API接口。 因此,您的编译器在抱怨一些内部引用没有修改。
这样就可以了:OpenGL不是您的程序附带的东西,它是图形驱动程序的一部分,您的程序必须使用用户计算机上安装的任何OpenGL版本。 为此,您可以通过传递libGL.so
-linker选项-lGL
动态链接-lGL
。
GLEW是一个帮助程序库,它动态地后加载系统OpenGL ABI中找不到的所有OpenGL函数,因此不会通过libGL.so
的公共符号表libGL.so
。 而是使用glXGetProcAddress
动态加载glXGetProcAddress
-一个相当繁琐的任务。 请注意,GLEW在OpenGL-3和更高版本的核心配置文件方面存在一些严重问题。
GLFW是用于设置具有OpenGL上下文的窗口的简化框架库。
GLEW和GLFW可以安全地与程序静态链接,建议您这样做。 不用-l…
标志,而是将libGLEW.a
和libGLFW.a
添加到要链接的源文件/编译单元列表中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.