Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GLEW在Windows下使用OpenGL扩展_Opengl_Glew - Fatal编程技术网

使用GLEW在Windows下使用OpenGL扩展

使用GLEW在Windows下使用OpenGL扩展,opengl,glew,Opengl,Glew,我一直在Windows上使用OpenGL扩展。GLEW是更简单的方法吗?如何开始使用它?是的,OpenGL Extension Wrangler库(GLEW)是在Windows上使用OpenGL扩展的一种无痛方法。以下是如何开始使用它: 确定希望使用的OpenGL扩展和扩展API。中列出了OpenGL扩展 检查图形卡是否支持您希望使用的扩展。下载并安装图形卡的最新驱动程序和SDK 带有GLEW的ship的最新版本。如果您正在使用此功能,则不需要执行以下某些步骤 下载并解压缩它 将GLEWbin路

我一直在Windows上使用OpenGL扩展。GLEW是更简单的方法吗?如何开始使用它?

是的,OpenGL Extension Wrangler库(GLEW)是在Windows上使用OpenGL扩展的一种无痛方法。以下是如何开始使用它:

确定希望使用的OpenGL扩展和扩展API。中列出了OpenGL扩展

检查图形卡是否支持您希望使用的扩展。下载并安装图形卡的最新驱动程序和SDK

带有GLEW的ship的最新版本。如果您正在使用此功能,则不需要执行以下某些步骤

下载并解压缩它

将GLEWbin路径添加到Windowspath环境变量中。或者,您也可以将glew32.dll放在Windows提取其dll的目录中

将GLEW包含路径添加到编译器的包含目录列表中

将GLEWlib路径添加到编译器的库目录列表中

指示编译器在链接期间使用glew32.lib。如果你使用VisualC++编译器,那么一种方法是通过在代码中添加下面的行:

#pragma comment(lib, "glew32.lib")
在代码中添加一行
#include
。确保将其放置在其他总账头文件的包含项之上。(如果包含
glew.h
,则实际上可能不需要GL头文件包含)

初始化GLUT或GL后,使用
glewInit()
初始化GLEW。如果失败,则说明您的设置有问题

if (GLEW_OK != glewInit())
{
    // GLEW failed!
    exit(1);
}
检查您希望使用的扩展现在是否可通过GLEW使用。您可以通过检查名为GLEW\u您的扩展名\u name的布尔变量来实现这一点,该变量由GLEW公开

例如:


就这样!您现在可以在代码中使用OpenGL扩展调用,就像它们在Windows中自然存在一样。

我个人不会使用exit命令

我会抛出一个异常,以便您可以在函数末尾清除任何其他初始化

即:


我同意OJ的观点——如果你想为别人写教程,那么这真的是一个错误的地方。opengl教程已经有很多好地方了

我浪费了一些时间,但最终还是设法让GLEW工作起来了。 我正在使用Windows7(x64)、Eclipse CDT和MinGW,方法是:

下载MSYS(用于MinGW)并记住正确安装MinGW(路径环境变量设置正确):

安装MSYS后,转到: 并下载TGZ软件包,该软件包用于UNIX系统

然后打开包(也可以使用7zip)并找到“Makefile”。 打开它,用文本编辑器(记事本可以正常工作)找到包含“GLEW_DEST”的行,并用类似“GLEW_DEST?=C:/MinGW”的内容替换它

现在您可以开始了,打开MSYS(我的例子是C:\MinGW\MSYS\1.0\MSYS.bat),在打开的shell中,转到“Makefile”所在的文件夹

然后写一个简单的:“makeinstall”就完成了(至少对我来说是这样)


PS:我还将粘贴的glew-1.10.0-win32\glew-1.10.0\bin\Release\win32文件复制到我的System32文件夹中,在Eclipse CDT中,我在链接器选项中添加了库“glew32”,并在
\include
之前添加了一个
\include

您好。这对MinGW有用吗?我已经尝试了2天了,但是我得到的都是错误,比如:
未定义对“\u imp”的引用__glewInit@0“< /代码>和<代码>未定义的引用“Dan the Man IMPULYXYGL WEWCREATESHDER”< /COD> >:此解决方案是用VisualC++编写的。我不知道这是否与MingGW.AFAIK一起工作,代码> > PrimaMyTrimeIn(LIB,GLW32,LIB)< /COD>只在Visual C++上工作。对于MinGW,您应该将库添加到编译器的命令行中(我认为它是
-L
)。@DantheMan尝试更改库的顺序,尤其是在C::B中,在C::B中,您有“Project”和“Target”设置,您可以决定先链接哪个。我不完全理解它,但我只是这样解决了我的问题:)。我应该得到哪个GLEW,源代码还是二进制文件?我迷路了。。。我注意到其中一个有一个空的lib文件夹。
if (!GLEW_EXT_framebuffer_object)
{
    exit(1);
}
try
{
    // init opengl/directx
    // init directaudio
    // init directinput

    if (GLEW_OK != glewInit())
    {
        throw std::exception("glewInit failed");
    }
}
catch ( const std::exception& ex )
{
    // message to screen using ex.what()
    // clear up
}