C++ OpenGL:调用 gluPerspective 会引发未定义的引用错误? [复制]

2023-12-15

我正在使用 FreeGLUT 尝试使用 OpenGL 在 C++ 中创建我的第一个立方体。我有一个问题,每当我调用“gluPerspective”时,编译器都会抛出此错误:

build/Debug/MinGW-Windows/main.o: In function `main':
C:\Users\User\Dropbox\NetBeans Workspace\Testing/main.cpp:47: undefined reference to `gluPerspective@32'

我环顾四周,看看是否有人遇到过这个问题,但一无所获。所以,我想我又忘记了一些事情。这是我调用该函数的地方:

......
glMatrixMode(GL_PROJECTION);
glLoadIdentity();

gluPerspective(45, 1.333, 1, 1000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
......

我包括了 freeGLUT,除了那条线之外,其他一切都有效。我检查了文档,看起来我使用它是正确的。我很茫然。


gluPerspective在版本 3.1 中已从 GLU(OpenGL 帮助程序库)中删除。您是否针对仍定义它的正确库进行编译?如果没有,那么您将需要编写自己的版本并将矩阵直接传递给 OpenGL。

OpenGL.org 有gluPerspective 代码在其网站上(为了完整性而在此处呈现):

//matrix will receive the calculated perspective matrix.
//You would have to upload to your shader
// or use glLoadMatrixf if you aren't using shaders.
void glhPerspectivef2(float *matrix, float fovyInDegrees, float aspectRatio,
                      float znear, float zfar)
{
    float ymax, xmax;
    float temp, temp2, temp3, temp4;
    ymax = znear * tanf(fovyInDegrees * M_PI / 360.0);
    //ymin = -ymax;
    //xmin = -ymax * aspectRatio;
    xmax = ymax * aspectRatio;
    glhFrustumf2(matrix, -xmax, xmax, -ymax, ymax, znear, zfar);
}
void glhFrustumf2(float *matrix, float left, float right, float bottom, float top,
                  float znear, float zfar)
{
    float temp, temp2, temp3, temp4;
    temp = 2.0 * znear;
    temp2 = right - left;
    temp3 = top - bottom;
    temp4 = zfar - znear;
    matrix[0] = temp / temp2;
    matrix[1] = 0.0;
    matrix[2] = 0.0;
    matrix[3] = 0.0;
    matrix[4] = 0.0;
    matrix[5] = temp / temp3;
    matrix[6] = 0.0;
    matrix[7] = 0.0;
    matrix[8] = (right + left) / temp2;
    matrix[9] = (top + bottom) / temp3;
    matrix[10] = (-zfar - znear) / temp4;
    matrix[11] = -1.0;
    matrix[12] = 0.0;
    matrix[13] = 0.0;
    matrix[14] = (-temp * zfar) / temp4;
    matrix[15] = 0.0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ OpenGL:调用 gluPerspective 会引发未定义的引用错误? [复制] 的相关文章

随机推荐

  • 无法访问 Firebase 对象属性。值显示为未定义 ANGULARFIRE

    我想为我所做的演示进行自定义登录 但遇到了问题 我使用用户名访问 Firebase 内的引用 url 得到一个返回的对象 如果我想访问单个属性 我会得到未定义的值 但是如果我在 html 中添加 returnedObj name 显示该值
  • Opera:无法从 window.open() 获取加载事件

    var openedWindow window open test html title openedWindow addEventListener load function console log received load event
  • Gson使用TypeAdapter或Json Deserializer将数据从错误列表转换为空列表

    让我们从例子开始 如果数据正确的话应该是 Beijing cities是空的 code 200 msg success data id 1 name Beijing cities id 2 name Guangdong cities id
  • 组织小型公用事业功能

    经过多年的编程 我们都有一组用作辅助实用程序的小函数 我们希望它是内置的 这样我们就可以在任何项目中使用它 并让更多的人照顾 测试和优化 我有相当多的这些功能的集合 我想知道你们是如何组织它们的 你有什么建议吗 我就是这样做的 我把它放在一
  • Backbone.js fetch() JSON 到模型 get() 返回未定义

    基本上我想获取一个JSON文件并将其存储在模型中 但是 当我尝试通过访问属性时get 它返回未定义 假设 JSON 文件有一个游戏数组 其中包含具有某些属性的对象 这并不重要 只是想将它们保存在模型中并访问它们 所以我正在做这样的事情 va
  • 使用 NULL 时的查询性能

    我想知道 NULL 值如何影响 SQL Server 2005 中的查询性能 我有一个与此类似的表 简化 ID ImportantData QuickPickOrder 1 Some Text NULL 2 Other Text 3 3 a
  • NHibernate 惰性属性行为?

    我一直在尝试让 NHibernate 参与我在工作场所进行的一个项目的开发 由于我必须非常重视性能 因此我一直在对包含数千条记录的现有项目表运行概念验证压力测试 所有这些记录都包含一个大型文本列 然而 当选择这些记录的集合时 select语
  • 在 DP Java 中以编程方式设置 ImageView 大小 [重复]

    这个问题在这里已经有答案了 我想设置一个的宽度和高度ImageView in Android The ImageView不存在于XML 它是在这里创建的 public void setImageView int i Integer d Li
  • 如何更改 JOptionPane 内的按钮背景

    我想知道是否有人知道是否可以更改按钮内的背景颜色JOptionPane 我知道如何改变整个JOptionPane背景使用UIManager 但知道我想要的是在JOptionPane分离各个颜色 如果我能做到这一点 我会怎么做 谢谢您的帮助
  • 文件中的 JetBrains PhpStorm 红色不会消失

    我有一些红色的文件 它们绝对没有错误 所有内容都正确编译 网络也正确显示 控制台上有 0 个错误 我实际上是复制粘贴 Angular 教程 它肯定是 100 无错误 但文件仍然是红色的 我很生气 因为它看起来像一个错误 有人有解决这个问题的
  • 使用pyaudio进行录音

    我正在尝试使用 python 录制语音 我尝试使用 pyaudio 模块 它在我的计算机上保存了一个 wav 文件 但录制了静态声音 有什么建议么 import pyaudio import wave CHUNK 1024 FORMAT p
  • 将 Unicode 字符串转换为转义 ASCII 字符串

    我怎样才能转换这个字符串 This string contains the Unicode character Pi 转换成转义的 ASCII 字符串 This string contains the Unicode character P
  • Yii2:验证是否至少选择了一个复选框

    我有多个音乐版本供用户创建促销 在促销创建表单上 我们列出了所有版本 我正在使用表单模型来创建促销 其中我为我的几个输入定义了所有规则促销形式模型 我想检查用户在保存表单时是否至少选择了一个版本 但它不起作用 因为复选框是动态创建的 我该字
  • 是否可以使用边框半径实现弯曲的圆形形状?

    我不确定形状是什么 我假设它是一个弯曲的圆圈 下面是示例的屏幕截图 我希望图像的形状有点像这样 但尝试与边界半径根本不工作 有什么方法可以用CSS实现这个形状吗 这是你的答案 你可以通过 border radius 来实现 如果您想自定义它
  • Laravel 5 多语言站点,url 中带有语言前缀

    因此 我需要在具有如下网址的网站上使用多种语言 mysite en language mysite it language mysite es language 我决定在我的路线中使用前缀 如下所示 allLanguages en it e
  • colgroup 和 col 上的 Span 属性

    这些代码在逻辑上是等价的吗
  • Laravel Route 在 web.php 中存在路由顺序问题

    我在 Laravel 中遇到路由问题 我正在遵循一个教程 并且我们在 web php 文件中列出了此路由 Route get home HomeController index gt name home Route get blog Blo
  • ColdFusion 9.0.0 TLSv1.2

    我正在运行 ColdFusion 9 0 Hotfix 3 我正在尝试让 TLSv1 2 适用于 cf http 标记 我首先升级到 Java 7 Update 80 然后升级到 Java 8 Update 25 使用 Wireshark
  • 具有多个模板参数错误的模板部分特化

    当我在具有一个模板参数的类上使用模板部分特化时 我可以特化这样的方法 include
  • C++ OpenGL:调用 gluPerspective 会引发未定义的引用错误? [复制]

    这个问题在这里已经有答案了 我正在使用 FreeGLUT 尝试使用 OpenGL 在 C 中创建我的第一个立方体 我有一个问题 每当我调用 gluPerspective 时 编译器都会抛出此错误 build Debug MinGW Wind