Ошибка: «неопределенная ссылка на« gluNewQuadric @ 0 »» - PullRequest
3 голосов
/ 04 декабря 2011

У меня есть ошибки во время компиляции проекта OpenGL SFML C ++ в Eclipse (с использованием MinGW в качестве цепочки инструментов):

неопределенная ссылка на `gluNewQuadric @ 0 '

неопределенная ссылка на`gluQuadricDrawStyle @ 8 '

неопределенная ссылка на `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, и у меня не было таких проблем раньше.

1 Ответ

7 голосов
/ 04 декабря 2011

Вам нужно передать соответствующий флаг компилятору. Чтобы включить библиотеку GLU, передайте это параметрам компиляции и компоновки:

-lGLU

РЕДАКТИРОВАТЬ: Выше работает на Linux, но для Windows, это:

-lglu32
...