gpt4 book ai didi

linux - 在 Linux 上为 gtkmm 和交叉编译设置 OpenGL

转载 作者:太空宇宙 更新时间:2023-11-04 09:09:15 24 4
gpt4 key购买 nike

我正在开始学习 OpenGL,但我不确定如何在 (Ubuntu) Linux 上设置它。

我认为这可能是一种方式:

OpenGL 只是一种图形语言规范(或接口(interface)),要正确使用它,我必须下载一些实现 OpenGL 规范的库(针对特定操作系统) .

经过长时间的搜索和从多个来源,我发现 Mesa 3D 图形库最适合我。

我还找到了 SDL(Simple DirectMedia Layer)库,但它似乎是一个用于除图形之外的所有其他内容(例如 GUI、声音、键盘和鼠标输入...)的库。我只需要一个图形库,这样它就能实现 OpenGL 规范。

作为图形用户界面,我使用 Gtkmm 库,到目前为止我对它“非常满意”,所以我想将 gtkmm 与 OpenGL“连接”——为此我找到了一个名为 的 gtkmm 库扩展gtkglextmm 通过它我应该能够在 GUI 中将 OpenGL 动画绘制到窗口(或 Gtkmm 术语中的 DrawingArea)(但我还没有尝试过所以我希望它会工作 :-))。

最后一个问题是从 Linux 到 Windows 的交叉编译(使用 MinGW 交叉编译器)。到目前为止,我已经成功地交叉编译(从 Linux 到 Windows)我使用 Gtkmm 库完成的所有工作。

当我将它与 OpenGL 结合使用时,交叉编译它会不会有任何问题(例如,在使用 Gcc 编译器进行编译时是否需要链接一些特殊的东西,或者我是否应该在我的应用程序中分发一些 Windows OpenGL 库)?

如果您确认我正朝着正确的方向前进,或者让我转向正确的方向,我会非常高兴,因为我可以用更简单或更好的方式做一些事情。

最佳答案

在某种程度上它依赖于显卡,专有驱动程序包包括它们自己的 libGL.so,还包括 libGL.la(链接到 .so)和任何相关的头文件。

  • Nvidia - OpenGL 库和 header 包含在专有驱动程序包中。
  • ATi FGLRX - OpenGL 库和 header 包含在专有驱动程序包中。
  • 开源驱动程序 - OpenGL 库和 header 作为 Mesa 的一部分提供。根据您的发行版,您可能需要安装 *-devel 包以获取您需要的 header 和可链接库。

如果您使用的是 Intel 或 Matrox 卡,或者您正在运行带有 rage、radeon 或 radeonhd 驱动程序的 ATi 卡,那么您使用的是开源驱动程序。

GLUT 将是工作程序的最短路径。否则,您需要自己编写代码来创建 OpenGL 上下文(特定于操作系统)。

如果您仍然遇到问题,请让我们详细了解哪些问题不适合您。

编辑这里有一些可能相关或有用的示例命令/代码。

GCC 编译:

gcc -lGL glprogram.c -o glprogram

包括:

#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>

关于linux - 在 Linux 上为 gtkmm 和交叉编译设置 OpenGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883505/

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