gpt4 book ai didi

OpenGL + Mesa 3D + MinGW

转载 作者:行者123 更新时间:2023-12-04 00:53:39 25 4
gpt4 key购买 nike

我在 (Ubuntu) Linux 上编写 C++ 应用程序并将它们编译到 2 个操作系统:使用“g++”(GNU C++ 编译器)本地编译到 Linux 并使用“i386-mingw32-g++”(MinGW C++ 交叉编译)将它们交叉编译到 Windows -编译器)。

现在,我正在尝试交叉编译“OpenGL”应用程序(从 Linux 到 Windows)——为此我需要一些 OpenGL 库文件。
作为 OpenGL 的实现,我使用“Mesa 3D”开源库。幸运的是,Ubuntu 为 Linux 提供了“预编译”的 mesa3d 库(libgl1-mesa-dev 和 libglu1-mesa-dev),但不幸的是,没有任何预编译的库可用于 MinGW 交叉编译器(因此它们的 Windows 版本) - 所以我“必须”“从源代码”手动编译它们(可以从 http://www.mesa3d.org 主页下载)。

但我不知道这样做。在 mesa3d 源代码中,有一些文档如何为某些特定平台构建库 - 特别是“README.MINGW32”自述文件。
但就在第一行有一些命令

mingw32-make -f Makefile.mgw [OPTIONS...]

我无法运行,因为我没有安装任何“mingw32-make”程序。通过其他软件,我曾经用“经典”构建它们
./configure -> make -> make install

过程,但这不适用于 mesa3d 库。
例如,我也尝试过
./configure --host=i386-mingw32

它已经配置好了,但是在输入之后
make

它抛出了一些错误
error: #error No PIPE_SUBSYSTEM_WINDOWS_xxx subsystem defined.

现在我迷路了:-(。

那么有人知道如何构建 mesa3d 库以将它们与 mingw32 一起使用吗?

P.S.:当然还有 我不要 永远不要使用 Microsoft Visual Studio :-)。而且我还想做所有必需的事情来从 Linux 构建 OpenGL 环境并使用 mingw32 进行交叉编译。我希望这是可能的。

P.S.2:在 http://www.mesa3d.org/systems.html页面上写着“不推荐使用带有 Mesa 3D 的 MinGW”。我以正确的方式使用它吗?

最佳答案

无需为 MinGW 编译 Mesa3D。 MinGW 包含 GL 库;它只是不叫libGL.a也不是 libGLU.a ;这些库改为 libopengl32.alibglu32.a .遗憾的是,这是微软决定在 Visual Studio 上的 Windows 下调用它们的名称,因此 MinGW 的 Windows 和 GNU/Linux 版本都决定包含上述命名的库。

因此,在为 Windows 进行交叉编译时,只需更改:

-lGL -lGLU

进入
-lopengl32 -lglu32

GNU/Linux 上的 Mesa3D 实际上是 OpenGL 的自由实现的名称。这是因为 OpenGL 是商标,而 SGI 的政策不允许任何人在不支付巨额资金的情况下使用该名称。尽管如此,SGI 还是为作者 Brian Paul 提供了测试套件的副本。

Mesa3D 在大多数平台上都具有原生 OpenGL 实现,称为软件“健全性检查”库,可模拟大量仅硬件的高端功能。但在 GNU/Linux 上,更重要的是称为 DRI 或直接渲染接口(interface)的东西。这是真正的交易,硬件加速等等。这个库也称为 Mesa3D;事实上,DRI 的配置是 Mesa3D 以及 X11 和内核的一部分。

Mesa3D 在 GNU/Linux 和其他免费平台上提供自由的 OpenGL 兼容头文件。

摘要: Mesa3D 是 OpenGL 的 GNU/Linux 实现的名称,因为该名称已注册商标。这个库包括一个优秀的、有特色的、正确的和相对快速的软件实现。它还包括用于硬件加速的直接渲染接口(interface)。

关于OpenGL + Mesa 3D + MinGW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1989431/

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