- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 glew 和 glut 标志添加到我的 cmd 行以正确编译我的程序。
没有 GLEW 和 GLUT 的代码:
#include <GLFW/glfw3.h>
#include <iostream>
#include <stdio.h>
using namespace std;
int main(void)
{
GLFWwindow* window;
/* Initialize the library */
if (!glfwInit())
return -1;
/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
/* Make the window's context current */
glfwMakeContextCurrent(window);
/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window))
{
/* Render here */
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex2f(-0.5f, -0.5f);
glVertex2f(0.0f, 0.5f);
glVertex2f(0.5f, -0.5f);
glEnd();
/* Swap front and back buffers */
glfwSwapBuffers(window);
/* Poll for and process events */
glfwPollEvents();
}
glfwTerminate();
return 0;
}
用这个命令运行它:
g++ openGL.cpp -lglfw3 -framework Cocoa -framework OpenGL -framework
IOKit -framework CoreVideo
工作并绘制一个三角形。添加 include glew 和 glut 语句:
#include <GL/glew.h>
#include <GL/glut.h>
并改用此命令:
g++ openGL.cpp -lglfw3 -framework Cocoa -framework OpenGL -framework
IOKit -framework CoreVideo -lglut -lGLU -lGL -lGLEW
导致编译器给出超过 20 个错误并放弃。
完整的错误信息:
In file included from openGL.cpp:9:
In file included from ./openGL.hpp:12:
/usr/local/include/GL/glew.h:85:2: error: gl.h included before glew.h
#error gl.h included before glew.h
^
/usr/local/include/GL/glew.h:91:2: error: gltypes.h included before glew.h
#error gltypes.h included before glew.h
^
/usr/local/include/GL/glew.h:6586:22: error: typedef redefinition with different
types ('unsigned int' vs 'void *')
typedef unsigned int GLhandleARB;
^
/System/Library/Frameworks/OpenGL.framework/Headers/gltypes.h:28:18: note:
previous definition is here
typedef void *GLhandleARB;
^
In file included from openGL.cpp:9:
In file included from ./openGL.hpp:12:
/usr/local/include/GL/glew.h:19860:17: error: unknown type name
'PFNGLCOPYTEXSUBIMAGE3DPROC'; did you mean 'PFNGLCOPYTEXSUBIMAGE3DNVPROC'?
GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D;
^
/usr/local/include/GL/glew.h:16452:28: note: 'PFNGLCOPYTEXSUBIMAGE3DNVPROC'
declared here
typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DNVPROC) (GLenum target...
^
/usr/local/include/GL/glew.h:19861:17: error: unknown type name
'PFNGLDRAWRANGEELEMENTSPROC'; did you mean
'PFNGLDRAWRANGEELEMENTSEXTPROC'?
GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements;
^
/usr/local/include/GL/glew.h:10251:28: note: 'PFNGLDRAWRANGEELEMENTSEXTPROC'
declared here
typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, ...
^
/usr/local/include/GL/glew.h:19862:17: error: unknown type name
'PFNGLTEXIMAGE3DPROC'; did you mean 'PFNGLTEXIMAGE3DNVPROC'?
GLEW_FUN_EXPORT PFNGLTEXIMAGE3DPROC __glewTexImage3D;
^
/usr/local/include/GL/glew.h:16454:28: note: 'PFNGLTEXIMAGE3DNVPROC' declared
here
typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DNVPROC) (GLenum target, GLint ...
^
/usr/local/include/GL/glew.h:19863:17: error: unknown type name
'PFNGLTEXSUBIMAGE3DPROC'; did you mean 'PFNGLTEXSUBIMAGE3DNVPROC'?
GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D;
^
/usr/local/include/GL/glew.h:16455:28: note: 'PFNGLTEXSUBIMAGE3DNVPROC' declared
here
typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DNVPROC) (GLenum target, GLi...
^
/usr/local/include/GL/glew.h:19865:17: error: unknown type name
'PFNGLACTIVETEXTUREPROC'; did you mean 'PFNGLACTIVETEXTUREARBPROC'?
GLEW_FUN_EXPORT PFNGLACTIVETEXTUREPROC __glewActiveTexture;
^
/usr/local/include/GL/glew.h:5701:28: note: 'PFNGLACTIVETEXTUREARBPROC' declared
here
typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
^
/usr/local/include/GL/glew.h:19866:17: error: unknown type name
'PFNGLCLIENTACTIVETEXTUREPROC'; did you mean
'PFNGLCLIENTACTIVETEXTUREARBPROC'?
GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture;
^
/usr/local/include/GL/glew.h:5702:28: note: 'PFNGLCLIENTACTIVETEXTUREARBPROC'
declared here
typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
^
/usr/local/include/GL/glew.h:19867:17: error: unknown type name
'PFNGLCOMPRESSEDTEXIMAGE1DPROC'
GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D;
^
/usr/local/include/GL/glew.h:19868:17: error: unknown type name
'PFNGLCOMPRESSEDTEXIMAGE2DPROC'
GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D;
^
/usr/local/include/GL/glew.h:19869:17: error: unknown type name
'PFNGLCOMPRESSEDTEXIMAGE3DPROC'; did you mean
'PFNGLCOMPRESSEDTEXIMAGE3DNVPROC'?
GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D;
^
/usr/local/include/GL/glew.h:16450:28: note: 'PFNGLCOMPRESSEDTEXIMAGE3DNVPROC'
declared here
typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DNVPROC) (GLenum targ...
^
/usr/local/include/GL/glew.h:19870:17: error: unknown type name
'PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC'
GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D;
^
/usr/local/include/GL/glew.h:19871:17: error: unknown type name
'PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC'
GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D;
^
/usr/local/include/GL/glew.h:19872:17: error: unknown type name
'PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC'; did you mean
'PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC'?
GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D;
^
/usr/local/include/GL/glew.h:16451:28: note:
'PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC' declared here
typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC) (GLenum t...
^
/usr/local/include/GL/glew.h:19873:17: error: unknown type name
'PFNGLGETCOMPRESSEDTEXIMAGEPROC'; did you mean
'PFNGLGETNCOMPRESSEDTEXIMAGEPROC'?
GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage;
^
/usr/local/include/GL/glew.h:2486:28: note: 'PFNGLGETNCOMPRESSEDTEXIMAGEPROC'
declared here
typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEPROC) (GLenum targ...
^
/usr/local/include/GL/glew.h:19874:17: error: unknown type name
'PFNGLLOADTRANSPOSEMATRIXDPROC'; did you mean
'PFNGLLOADTRANSPOSEMATRIXDARBPROC'?
GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd;
^
/usr/local/include/GL/glew.h:7683:28: note: 'PFNGLLOADTRANSPOSEMATRIXDARBPROC'
declared here
typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]);
^
/usr/local/include/GL/glew.h:19875:17: error: unknown type name
'PFNGLLOADTRANSPOSEMATRIXFPROC'; did you mean
'PFNGLLOADTRANSPOSEMATRIXFARBPROC'?
GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf;
^
/usr/local/include/GL/glew.h:7684:28: note: 'PFNGLLOADTRANSPOSEMATRIXFARBPROC'
declared here
typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]);
^
/usr/local/include/GL/glew.h:19876:17: error: unknown type name
'PFNGLMULTTRANSPOSEMATRIXDPROC'; did you mean
'PFNGLMULTTRANSPOSEMATRIXDARBPROC'?
GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd;
^
/usr/local/include/GL/glew.h:7685:28: note: 'PFNGLMULTTRANSPOSEMATRIXDARBPROC'
declared here
typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]);
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
我正在尝试学习 OpenGL,但不知道该做什么。
最佳答案
Glut 和 GLFW 是完全不同的库。看这里What is the difference between FreeGLUT vs GLFW?
我认为尝试将它们混合在同一个程序中是不明智的,并且 .h 文件可能会发生冲突 - 这可能解释了许多错误。
通常您可以使用 GLFW 或 GLUT,但不能同时使用它们,它们的行为完全不同。
我还注意到您正在使用即时模式在 OpenGL 中绘图。这很容易,而且是一个不错的起点,但不再像这样完成了。因此,请准备好使用顶点数组对象 (VBO) 来绘制更复杂但速度更快、功能更强大的方法。在执行即时模式时,请尝试提前阅读并完成一些 VBO 教程。
关于c++ - 在 macOS 上编译 GLEW 和 GLUT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51922640/
使用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
我是一名优秀的程序员,十分优秀!