gpt4 book ai didi

opengl - 在 Cygwin 下编译最小的 GLEW 应用程序

转载 作者:行者123 更新时间:2023-12-04 14:08:02 25 4
gpt4 key购买 nike

让我们考虑以下程序并尝试在 Cygwin 下编译它:

#include <GL/glut.h>
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glLoadIdentity();
}
它编译并运行得很好。 -I/usr/include/opengl似乎非常重要。
g++ -I/usr/include/opengl -I../include/cygwin -L../lib/cygwin test.cpp -o test.exe -lglut32 -lglu32 -lglew32 -lopengl32
现在,
#include <GL/glew.h> // from newest NVIDIA SDK
#include <GL/glut.h>
int main(int argc, char** argv)
{
glewInit();
glutInit(&argc, argv);
glLoadIdentity();
}
编译者
g++ -I/usr/include/opengl -I../include/cygwin -L../lib/cygwin test.cpp -o test.exe -lglut32 -lglu32 -lglew32 -lopengl32
失败。
如何构建第二个应用程序?
第一的
有几种方法可以从 NVIDIA SDK 构建 glew:通过 VS、通过 cygwin、通过带有 -D_WIN32 的 cygwin。我还尝试了 cygwin build of original glew from source。
VS 构建给出
/cygdrive/c/DOCUME~1/kelebron/LOCALS~1/Temp/ccErbecl.o:test.cpp:(.text+0xa8): undefined reference to `_glLoadIdentity'
collect2: ld returned 1 exit status
cygwin 构建提供了许多
../lib/cygwin/glew32.lib(glew.o):glew.c:(.text+0x38e): undefined reference to `_glXGetProcAddress'
并且带有 -D_WIN32 的 cygwin 根本无法编译(我有点受到 this post 的启发)。
第二
似乎有两种方法可以与 OpenGL 链接
使用 -L/lib/w32api
或使用 -L/usr/X11R6/lib -lX11 -lXi -lXmu
但是,-L 指令不会改变任何东西。我有/usr/lib/w32api/libopengl32.a,但可能缺少 X11 版本(/usr/X11R6/lib/libGL?)。我应该在 Cygwin 中包含什么包?我已经安装了所有从 libGL 开始的(不仅......)。

最佳答案

前阵子也遇到过类似的问题,发现Cygwin下有两种编译opengl代码的方法。
第一个链接到本地​​ win32api 库 glut32 glu32 opengl32(也是 glui)。
那些有点老:
过剩 v3.7.6
OpenGL v1.1
胶水 2.11

第二种方式使用 X11 库 glut glu gl。他们的头文件中有更新的版本号(请注意,使用 GL 扩展需要 >v1.2):
glut v4 (freeglut)
OpenGL v1.3
格列斯特
...

所以要使用第一个选项comile: -I/usr/include/opengl
并链接到: -lglut32 -lGLU32 -lOpenGL32

要使用 X11 版本,请编译: -I/usr/include/ (默认包含)
并链接: -lglut -lGLU -lGL (注意区别)
您可以添加 X11 header 和库,但我猜它们包含在 GL header 中。
-I/usr/X11R6/include
-L/usr/X11R6/lib -lXmu -lXi -lXext -lX11

在 Cygwin 安装程序中,您可以选择以下软件包:
opengl -- 给出win32版本的opengl, glut, glui
libglut-devel -- X11 版本的 glut (freeglut),这也会选择所有依赖包。 (glproto, libGL libGLU, libX11, ...)
我还建议包括 Xorg-server 因为您将需要一个 X 服务器。

希望这可以帮助。

关于opengl - 在 Cygwin 下编译最小的 GLEW 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/389488/

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