I程序上(Ubuntu的)Linux的C++应用程序并将其编译成2个操作系统:本地到Linux的通过使用"G ++"(GNU C++编译器)和它们交叉编译到视窗通过使用"I386-的mingw32-G ++"(MinGW的C++横-compiler).
现在,我正在尝试交叉编译"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...]
Run Code Online (Sandbox Code Playgroud)
我无法运行,因为我没有安装任何"mingw32-make"程序.通过其他软件,我曾经用"经典"来构建它们
./configure -> make -> make install
Run Code Online (Sandbox Code Playgroud)
过程,但这不适用于mesa3d库.
例如,我也尝试过
./configure --host=i386-mingw32
Run Code Online (Sandbox Code Playgroud)
它已配置好,但在打字后
make
Run Code Online (Sandbox Code Playgroud)
它引发了一些错误
error: #error No PIPE_SUBSYSTEM_WINDOWS_xxx subsystem defined.
Run Code Online (Sandbox Code Playgroud)
现在我很失落:-(.
那么有谁知道如何构建mesa3d库以便与mingw32一起使用它们?
PS:当然,我不想使用Microsoft Visual Studio ,而不是更多:-).而且我还想做所有必要的事情来从Linux构建OpenGL环境并使用mingw32进行交叉编译.我希望有可能.
PS2:在http://www.mesa3d.org/systems.html页面上写道,使用MinGW和Mesa 3D是"弃用".我正是以正确的方式使用它吗?
Iva*_*ica 16
没有必要为MinGW编译Mesa3D.MinGW包括GL库; 它只是不叫libGL.a也不是libGLU.a; 该库改为调用libopengl32.a和libglu32.a.遗憾的是,这就是微软决定在Visual Studio上的Windows下调用它们,因此MinGW的Windows和GNU/Linux版本都决定包含如上所述的库.
因此,在为Windows进行交叉编译时,只需更改:
-lGL -lGLU
Run Code Online (Sandbox Code Playgroud)
成
-lopengl32 -lglu32
Run Code Online (Sandbox Code Playgroud)
GNU/Linux上的Mesa3D实际上是OpenGL 的libre实现的名称.这是因为OpenGL是商标,SGI的政策不允许任何人使用该名称而无需支付大笔金额.尽管如此,SGI还是为作者Brian Paul提供了测试套件的副本.
Mesa3D在大多数平台上都具有原生OpenGL实现,称为软件"健全性检查"库,模拟了许多仅限高端硬件的功能.但是在GNU/Linux上,更重要的是称为DRI或直接渲染界面.这是真正的交易,硬件加速等等.该库也称为Mesa3D; 事实上,DRI的配置是Mesa3D以及X11和内核的一部分.
Mesa3D 在GNU/Linux和其他免费平台上提供与libre OpenGL兼容的头文件.
简介: Mesa3D是OpenGL的GNU/Linux实现的名称,因为该名称是商标.该库包含一个出色,功能强大,正确且相对快速的软件实现.它还包括用于硬件加速的直接渲染界面.
| 归档时间: |
|
| 查看次数: |
10208 次 |
| 最近记录: |