【问题标题】:GLUT on VS 2019 [closed]VS 2019 上的过剩 [关闭]
【发布时间】:2020-11-24 22:20:13
【问题描述】:

我正在尝试在 Visual Studio 2019 上使用 opengl 但是每当我想编译我的项目时,我都会收到错误说 glut.h 没有定义

我尝试了什么: 复制 glut32.dll “C:\Program Files (x86)\Windows Kits\8.1\Include\um\gl” 和 复制 glut32.lib 在“C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64”

#include <GL/glut.h>
#include <stdio.h>
#define GAP 10
int main_w, w1, w2, w3, w4;
void
display(void)
{
  glClear(GL_COLOR_BUFFER_BIT);
  glFlush();
}
void vis(int visState)
{
  printf("VIS: win=%d, v=%d\n", glutGetWindow(), visState);
}
void reshape(int w, int h)
{
  int width = 50;
  int height = 50;
  glViewport(0, 0, w, h);
  if (w > 50) {
    width = (w - 3 * GAP) / 2;
  } else {
    width = 10;
  }
  if (h > 50) {
    height = (h - 3 * GAP) / 2;
  } else {
    height = 10;
  }
  glutSetWindow(w1);
  glutPositionWindow(GAP, GAP);
  glutReshapeWindow(width, height);
  glutSetWindow(w2);
  glutPositionWindow(GAP + width + GAP, GAP);
  glutReshapeWindow(width, height);
  glutSetWindow(w3);
  glutPositionWindow(GAP, GAP + height + GAP);
  glutReshapeWindow(width, height);
  glutSetWindow(w4);
  glutPositionWindow(GAP + width + GAP, GAP + height + GAP);
  glutReshapeWindow(width, height);
}
int main(int argc, char **argv)
{
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_RGB);
  glutInitWindowSize(210, 210);
  main_w = glutCreateWindow("4 subwindows");
  glutDisplayFunc(display);
  glutVisibilityFunc(vis);
  glutReshapeFunc(reshape);
  glClearColor(1.0, 1.0, 1.0, 1.0);
  w1 = glutCreateSubWindow(main_w, 10, 10, 90, 90);
  glutDisplayFunc(display);
  glutVisibilityFunc(vis);
  glClearColor(1.0, 0.0, 0.0, 1.0);
  w2 = glutCreateSubWindow(main_w, 110, 10, 90, 90);
  glutDisplayFunc(display);
  glutVisibilityFunc(vis);
  glClearColor(0.0, 1.0, 0.0, 1.0);
  w3 = glutCreateSubWindow(main_w, 10, 110, 90, 90);
  glutDisplayFunc(display);
  glutVisibilityFunc(vis);
  glClearColor(0.0, 0.0, 1.0, 1.0);
  w4 = glutCreateSubWindow(main_w, 110, 110, 90, 90);
  glutDisplayFunc(display);
  glutVisibilityFunc(vis);
  glClearColor(1.0, 1.0, 0.0, 1.0);
  glutMainLoop();
  return 0;             /* ANSI C requires main to return int. */
}

E1696 无法打开源文件“GL/glut.h”

我必须做些什么来解决这个问题? PS:我知道我可以 Cmake 源代码并将它们包含在我的项目中,但不想只为一个项目修复它我想让我的可视化 stdio 与 Open GL 一起使用,因为我还有许多其他 opengl 项目

【问题讨论】:

  • 我敢打赌,这并不是错误所说的。请edit您的问题包括您的代码和确切的错误消息。
  • 我尝试过:复制 glut32.dll “C:\Program Files (x86)\Windows Kits\8.1\Include\um\gl” 并复制 glut32.lib “C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64” 你不应该将文件放在这些位置。此外,这些文件都不会修复丢失的标题。

标签: c++ opengl glut


【解决方案1】:

glut.h 不是 OpenGL 本身的一部分。它是名为 GLUT 的独立库的一部分。不幸的是,众所周知,GLUT 在某种程度上存在漏洞,并且自 1998 年以来一直没有更新,因此这些漏洞可能永远不会得到修复。

如果您只是对构建和运行此代码感兴趣,那么它可能会运行良好。

Glut Downloads

您还可以考虑以下几个项目作为替代/替代方案:

  1. FreeGlut
  2. OpenGlut

我猜这其中任何一个都可能具有足够的兼容性来编译和测试您正在查看的代码,但我还没有测试过,所以很难确定。

我自己的建议是,一旦您完成查看现有代码,就离开 Glut 并使用其他东西。有很多替代方案可以让很多事情变得比 Glut 尝试的更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 2014-08-31
    • 2012-06-16
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多