Проекты, использующие QtOpenGL, не могут ссылаться на вызовы gl, но только на Windows (Linux доволен). Сообщения об ошибках MSVC 2008 для следующего минимален случае проекта являются:FindQt4 не удается правильно связать проект QtOpenGL
1>gllink.obj : error LNK2019: unresolved external symbol [email protected] referenced in function "protected: virtual void __thiscall ImageWidget::initializeGL(void)" ([email protected]@@MAEXXZ)
1>gllink.obj : error LNK2019: unresolved external symbol __imp__[email protected] referenced in function "protected: virtual void __thiscall ImageWidget::initializeGL(void)" ([email protected]@@MAEXXZ)
1>gllink.exe : fatal error LNK1120: 2 unresolved externals
Эти ошибки исчезают, когда я вручную добавить «opengl32.lib» в списке «Дополнительные зависимости», но я считаю, что это не должно быть необходимым, так как это должно быть сделано FindQt4.cmake, или должно быть учтено зависимость QtOpenGL от opengl32. Конечно, я должен ошибаться, поэтому я был бы очень признателен за то, как правильно исправить этот проект.
gllink.cpp
#include <QtOpenGL>
#include <QWidget>
class ImageWidget : public QGLWidget
{
public:
ImageWidget(QWidget* parent = 0) :
QGLWidget(parent)
{
}
protected:
void initializeGL()
{
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
};
int main()
{
ImageWidget w;
return 0;
}
CMakeLists.txt
PROJECT(gllink)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
FIND_PACKAGE(Qt4 4.6.0 REQUIRED COMPONENTS QtCore QtGui QtOpenGL)
INCLUDE(${QT_USE_FILE})
ADD_EXECUTABLE(gllink gllink.cpp)
TARGET_LINK_LIBRARIES(gllink ${QT_LIBRARIES})
Почему это было приостановлено? – cmannett85