ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

c – 错误:“对’gluNewQuadric @ 0’的未定义引用”

2019-07-29 22:05:43  阅读:346  来源: 互联网

标签:sfml c opengl mingw


我在Eclipse中编译OpenGL SFML C项目时遇到错误(使用MinGW作为工具链):

undefined reference to `gluNewQuadric@0′

undefined reference to `gluQuadricDrawStyle@8′

undefined reference to `gluDeleteQuadric@4

违规代码在这里:

#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/System.hpp>   

sf::WindowSettings Settings;
Settings.AntialiasingLevel = 2;
Settings.DepthBits = 24;
Settings.StencilBits = 8;
sf::Window  App(sf::VideoMode(1024, 768, 32), "SFML Window", sf::Style::Close, Settings);
App.SetFramerateLimit(30);
prepareGL(App.GetWidth(), App.GetHeight());
sf::Clock Clock;
App.SetActive();
// GL goes here:
GLUquadricObj *qw1 = gluNewQuadric();
gluQuadricDrawStyle(qw1,GLU_POINT);
App.Display();
while (App.IsOpened()) {
    sf::Event Event;
    while (App.GetEvent(Event)) {
        if (((Event.Type == sf::Event::KeyPressed)
            && (Event.Key.Code == sf::Key::Escape))
            || (Event.Type == sf::Event::Closed)) {
            gluDeleteQuadric(qw1);
            App.Close();
        }
        if (Event.Type == sf::Event::Resized) {
            glViewport(0, 0, Event.Size.Width, Event.Size.Height);
        }
    }
}
return EXIT_SUCCESS;

我做错了什么?通常,我用Java编写代码,而这个项目我正在做更多关于C/C++的知识.之前我做过其他的OpenGL程序,之前我没有这样的问题.

解决方法:

您需要将适当的标志传递给编译器.要包含GLU库,请将其传递给编译和链接选项:

-lGLU

编辑:上面的工作在Linux上,但对于Windows,它是:

-lglu32

标签:sfml,c,opengl,mingw
来源: https://codeday.me/bug/20190729/1575653.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有