gpt4 book ai didi

c++ - 在不安装的情况下运行 OpenGL?

转载 作者:行者123 更新时间:2023-11-28 06:59:14 25 4
gpt4 key购买 nike

我正在编写一个基于 OpenGL 的游戏。它只包括这两个库:glew、glfw3。为了运行它,用户显然必须安装 OpenGL,我想绕过这个假设。我已经在游戏目录中收集了所有适当的二进制文件,并尝试在本地链接到这些库,但编译器声称未定义对所有函数的引用。我做错了什么还是不可能的?我正在使用 Windows,但出于同样的原因,它在 Linux 上失败了。

最佳答案

OpenGL 不是您安装的库,它是作为驱动程序的一部分实现的 API。您的编译器提示符号未解析与最终用户计算机上的情况完全无关。在您的情况下,听起来您没有告诉编译器/链接器将哪些库和 API 接口(interface)链接到您的程序二进制文件中;你的编译器因此提示,一些内部引用没有重新定位。

所以它是这样的:OpenGL 不是你的程序附带的东西,它是图形驱动程序的一部分,你的程序必须使用用户机器上安装的任何 OpenGL 版本。为此,您通过传递编译器链接器选项 -lGL 动态链接到 libGL.so

GLEW 是一个辅助库,它动态地后加载所有在系统 OpenGL ABI 中找不到的 OpenGL 函数,因此这些函数不会通过 libGL.so 的公共(public)符号表导出。相反,它们将使用 glXGetProcAddress 动态加载——这是一项相当乏味的任务。请注意,在涉及 OpenGL-3 和更高版本的核心 配置文件时,GLEW 存在一些严重的问题。

GLFW 是一个简单的框架库,用于设置具有 OpenGL 上下文的窗口。

GLEW 和 GLFW 可以安全地静态链接到您的程序,我建议您这样做。不要使用 -l… 标志,而是将 libGLEW.alibGLFW.a 添加到要链接的源文件/编译单元列表中.

关于c++ - 在不安装的情况下运行 OpenGL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22745267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com