Ошибка Qt «неопределенная ссылка gluPickMatrix @ 36» комплектация в 3d среде

Я пытаюсь написать код для комплектации в моем настольном приложении на C ++ в Qt creator.
Я полностью новичок в Qt и C ++ (извиняюсь за свое невежество), я прочитал много примеров, и все они используют Glut, Glu и \ или glew.

Я следую этому коду:
https://github.com/tatsy/QtOpenGLMousePick

и я попытался включить библиотеку, но я не уверен во всех шагах, которые необходимо сделать. Может кто-нибудь объяснить их, пожалуйста?

После многих попыток включить библиотеку glut и glew мой код по-прежнему выдает ошибки:

C: ... \glwidget.cpp:266: error: undefined reference to `gluPickMatrix@36'
C: ... \glwidget.cpp:268: error: undefined reference to `gluPerspective@32'

Я использую: Qt Creator 4.4.1 на основе Qt 5.9.2 (MSVC 2015, 32-разрядная версия)

Мой код:

void GLWidget::mousePressEvent(QMouseEvent* ev) {
// Selection buffer
std::fill(selectBuffer.begin(), selectBuffer.end(), 0);
//-(selectBufferSize, &selectBuffer[0]);

// Draw for selection buffer
glRenderMode(GL_SELECT);

// Matrix setting
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();

int viewport[4];
glGetIntegerv(GL_VIEWPORT, viewport);
gluPickMatrix(50, 50, 5, 5, viewport);
const float aspect = static_cast<float>(viewport[2]) / viewport[3];
gluPerspective(45.0, aspect, 1.0, 1000.0);

// Draw
paintGL();

// Reset matrix setting
glMatrixMode(GL_PROJECTION);
glPopMatrix();

// Revert render mode
int hits = glRenderMode(GL_RENDER);

// Show selection
printf("%d hits\n", hits);
if (hits > 0) {
int id = 0;
for (int i = 0; i < hits; i++) {
printf("Level: %u\n", selectBuffer[id + 0]);
printf("  Min: %f\n", (double)selectBuffer[id + 1] / UINT_MAX);
printf("  Max: %f\n", (double)selectBuffer[id + 2] / UINT_MAX);
printf("   ID: %u\n", selectBuffer[id + 3]);
id += 4;
}
}
}

Конечно я в том числе:

#include <gl/GLU.h>
#include <gl/glut.h>

и в моем .pro:

LIBS += -lOpengl32
LIBS += -LD:\Qt\5.9.2\mingw53_32\lib\libQt5OpenGL.a -lopengl32
LIBS += -lglut
LIBS += -LC:\MinGW\lib\libglut.a -lglut

win32:CONFIG(release, debug|release):
LIBS += -L$$PWD/../../../../../Downloads/glutcu/lib/ -lglut32cu
else:win32:CONFIG(debug, debug|release):
LIBS += -L$$PWD/../../../../../Downloads/glutcu/lib/ -lglut32cu
else:unix: LIBS += -L$$PWD/../../../../../Downloads/glutcu/lib/ -lglut32cu

INCLUDEPATH += $$PWD/../../../../../Downloads/glutcu/include
DEPENDPATH += $$PWD/../../../../../Downloads/glutcu/include

DISTFILES += \
freeglut.dll \
glew32.dll

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]