- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
注意:glGetString(GL_VERSION) 返回:2.1.0 - Build 8.15.10.2361
我已经将 GLEW 安装到 System32,以及 VCDir/lib 和 VCDir/include 目录。所以链接器在找到 GLEW 的必要位时应该没有任何问题。我遇到的麻烦是以下代码:
void foo()
{
Uint32 vboId;
glGenBuffers(1, &vboId);
}
给我以下错误:
unresolved external symbol __imp____glewGenBuffers
这个错误是我决定安装 GLEW 的全部原因。请参阅:unresolved external symbol _glGenBuffers error
除了这个错误之外,还有一些警告有点令人担忧:
Warning 1 warning C4028: formal parameter 3 different from declaration c:\sdl-1.2.14\include\sdl_opengl.h 4855 1 Prototek
Warning 2 warning C4028: formal parameter 3 different from declaration c:\sdl-1.2.14\include\sdl_opengl.h 4857 1 Prototek
Warning 3 warning C4028: formal parameter 2 different from declaration c:\sdl-1.2.14\include\sdl_opengl.h 4859 1 Prototek
Warning 4 warning C4028: formal parameter 2 different from declaration c:\sdl-1.2.14\include\sdl_opengl.h 4861 1 Prototek
Warning 5 warning C4028: formal parameter 3 different from declaration c:\sdl-1.2.14\include\sdl_opengl.h 4868 1 Prototek
Warning 6 warning C4028: formal parameter 3 different from declaration c:\sdl-1.2.14\include\sdl_opengl.h 4869 1 Prototek
此外,像我为 GLEW 所做的那样,将 SDL 安装到我的 VC inc 和 lib 以及 System32 目录是个好主意吗?
我的文件顶部的#include 看起来像这样:
#include <stdio.h>
#include <glew.h>
#include "sdl.h"
#include "sdl_opengl.h"
#include <gl/GLU.h>
#include <gl/GL.h>
但如果需要,这里是整个代码体:
#include <stdio.h>
#include <glew.h>
#include "sdl.h"
#include "sdl_opengl.h"
#include <gl/GLU.h>
#include <gl/GL.h>
Uint32 loadTexture(char* fileName)
{
Uint32 id;
SDL_Surface *img = NULL;
//load into memory using SDL
img = SDL_LoadBMP(fileName);
//generate an id for this texture
glGenTextures(1, &id);
//use this texture
glBindTexture(GL_TEXTURE_2D, id);
//load the texture into video memory via OpenGL
glTexImage2D(
GL_TEXTURE_2D,
0,
GL_RGB,
img->w,
img->h,
0,
GL_BGR,
GL_UNSIGNED_BYTE,
img->pixels
);
//set mip map settings
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
SDL_FreeSurface(img);
return id;
}
Uint32 tex;
void init()
{
glClearColor(0.0, 0.0, 0.0, 1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 1.0, 0.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_TEXTURE_2D);
tex = loadTexture("fireball.bmp");
}
void foo()
{
Uint32 vboId;
glGenBuffers(1, &vboId);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glBindTexture(GL_TEXTURE_2D, tex);
glBegin(GL_QUADS);
glTexCoord2f(0.5, 0.5);
glVertex3f(0.25, 0.25, 0.0);
glTexCoord2f(1.0, 0.5);
glVertex3f(0.5, 0.25, 0.0);
glTexCoord2f(1.0, 1.0);
glVertex3f(0.5, 0.5, 0.0);
glTexCoord2f(0.5, 1.0);
glVertex3f(0.25, 0.5, 0.0);
glEnd();
}
int main()
{
Uint32 isRunning = 1;
SDL_Surface *screen = NULL;
SDL_Event event;
Uint32 start;
Uint32 FPS = 30;
SDL_Init(SDL_INIT_EVERYTHING);
screen = SDL_SetVideoMode(640, 480, 32, SDL_OPENGL);
init();
while(isRunning)
{
start = SDL_GetTicks();
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case SDL_QUIT: isRunning = 0; break;
}
}
display();
SDL_GL_SwapBuffers();
if(1000 / FPS > SDL_GetTicks() - start)
{
SDL_Delay(1000 / FPS - (SDL_GetTicks() - start));
}
}
SDL_Quit();
return(0);
}
最佳答案
我注意到您没有包含对 glewInit() 的调用,如果您打算使用 glew,请确保在使用它提供的任何 openGL 函数指针之前调用它。
关于c - 无法让 GLEW 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6970228/
使用glew,我正在尝试链接简单的程序 #include int main (int argc, const char * argv[]) { glewInit(); return
我有一个动态库,在构建中包含glew.c,并使用GLEW_STATIC 构建。如果另一个库链接到同一个应用程序并且还以某种方式包含 GLEW,是否有可能由于单一定义规则而导致 Linux 出现问题?
我在 Macintosh 上使用终端。 要编译的命令是基本的: g++ -c String.cpp -o String.o g++ -c FileIO.cpp -o FileIO.o g++ -c
我正在配置一个与 glut 一起工作的程序来与 Qt 一起工作。我正在使用 Qt 5.1.1。并且似乎从 Qt4 到 Qt5 已经丢失了一些 openGL 功能。在我的程序中,我创建了一个 QOpen
我正在尝试做 openGLbook.com 教程。我收到这个常见错误: 1>------ Build started: Project: OpenGL Startup, Configurati
我读过这个 [1],但在我的例子中,CMake 说它找不到 glew。 我在 Windows 上,我的 CMake 模块文件夹中有一个 FindGLEW.cmake 文件,大概是在我安装 CMake-
这很奇怪。我想在我的 gl 程序中实现着色器。 但 GLEW 告诉我,我的系统不支持着色器: //glut init and glew init ... if (GLEW_ARB_vertex_sha
我想使用三角扇绘制不同的图形,但我不知道如何让程序绘制第二个图形。每次我想更改颜色或绘制新图形时,是否需要第二个 vertexShaderSource 和第二个 fragmentShaderSourc
我现在对尝试链接这个 glew 库感到非常沮丧 这是构建日志: g++ -o test.exe "src\\test.o" -lglew32 -lglfw -lglu32 -lopengl32 src
当我尝试在 CLion 中构建我的项目时,我遇到了来自 cmake 的链接错误。我已经尝试过其他线程所说的:将 opengl 放在最后,将 glu 放在第一位,更改我的 include 的顺序并设置
我遇到了这个问题,不知道该怎么办? 'abc.exe': Loaded 'D:\Windows\SysWOW64\nvoglv32.dll', Cannot find or open the PDB
我只是想使用 SDL 2.0 和 glew 1.9 创建一个 openGL 上下文 构建项目时没有问题,但在调试时,GLEW 初始化失败,我该怎么做才能解决这个问题? 我正在使用 visual stu
我正在使用以下代码检查是否有任何错误: glfwInit(); glewExperimental = GL_TRUE; if (glewInit() != 0) { std::cout <<
不知何故,我无法在多个头文件中获取 Glew。它只是提示 Gl 已经在 GLEW 之前定义了。 简而言之,我有以下文件结构: 程序.h 包括: , 和 "SceneManager.h" . 场景管理器
我的机器有 OpenGL 2.0,由于一些奇怪的原因,头文件 gl.h 不包含着色器函数。所以,有人建议我使用 GLEW。我正确安装了 GLEW,并将 glew32s 链接到我的编译器,我还在我的 m
我需要在 Ubuntu 11.10 中加载扩展。我尝试构建 GLEW,但出现以下奇怪错误... ~/Downloads/glew-1.7.0$ make cc -shared -Wl,-soname=
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我试图通过将源文件添加到我的项目来跳过 glew 的“链接步骤”,以使代码更加灵活(目标 32 位和 64 位,只需稍作修改)。我已经使用 Code::Blocks 和 mingw 32 位实现了 3
出于我无法理解的原因,glew 在静态链接时根本不起作用。有没有一种方法可以简单地将 glew.h、glxew.h、wglew.h 和 glew.c 源文件包含到我的项目中并使用 #include "
我编译了 GLEW 库。它似乎工作正常,这里是 make install 的输出: install -d -m 0755 "/usr/include/GL" install -m 0644 inclu
我是一名优秀的程序员,十分优秀!