Qt не будет ничего связывать - PullRequest
2 голосов
/ 01 апреля 2012

Я пробовал это как на Ubuntu Linux, так и на Windows.Я не могу заставить Qt связать какие-либо из его библиотек или любых внешних библиотек, я пробовал почти каждую комбинацию LIBS += -Lpath/to/lib -llib и INCLUDEPATH += path/to/include/files, возможную в моем .pro file:

QT += opengl
TARGET = QtOpenGLExample
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp \
    GLExampleWidget.cpp
HEADERS += GLWidget.h
LIBS += -L /usr/lib/ -llibQtOpenGL.so.4.6.2

Я заметил этопроблема, когда я щелкнул «Open GL» в создателе проекта, и тогда он не работал (даже после того, как я попытался возиться в .pro), прежде чем я просто подумал, что делал что-то глупое, когда пытался связать SFML 1.6.

Ps Это связано с тем, где находится мой проект ?:

/home/aperson/Projects/ComputerProgramming/C++/OpenGLExample/

Ответы [ 4 ]

4 голосов
/ 01 апреля 2012

Не должно быть

 LIBS += -L /usr/lib/ -llibQtOpenGL.so.4.6.2

но

 LIBS += -L /usr/lib/ -lQtOpenGL

Потому что для компоновщика -lfoo означает libfoo.so (и он должен быть в состоянии найти правильную версию файла, поэтому вам не нужно рассказывать о 4.6.2)

Возможно, вам даже не нужен специальный LIBS, поскольку в строке QT упоминается opengl. Но вы должны быть уверены, что пакет libqt4-opengl-dev установлен.

2 голосов
/ 01 апреля 2012

Взято из Модуль QtOpenGL :

Модуль Qt OpenGL упрощает использование OpenGL в приложениях Qt. Он предоставляет класс виджетов OpenGL, который можно использовать так же, как и любой другой виджет Qt, за исключением того, что он открывает буфер отображения OpenGL, где вы можете использовать API OpenGL для визуализации содержимого.

Чтобы включить определения классов модуля, используйте следующую директиву:

 #include <QtOpenGL>

Чтобы добавить ссылку на модуль, добавьте эту строку в ваш файл qmake .pro:

 QT += opengl

Возможно, вам понадобится ссылка на вашу библиотеку opengl. Это должно сделать:

 LIBS += -lGL
1 голос
/ 03 апреля 2012

Это потому, что вы сказали qmake, что вы создаете консольное приложение в своем файле .pro, заставляя его игнорировать все библиотеки GUI.Так что избавьтесь от линии CONFIG += console.

1 голос
/ 01 апреля 2012

Файл проекта у вас, кажется, в порядке.QMake должен сгенерировать для вас команду corrent -l -L.ИМХО, это не проблема.

Вам не хватает пакета opengl / Qt4?Его называют libqt4-opengl-dev в Ubuntu и Debian.См.

  1. http://packages.debian.org/sid/libqt4-opengl-dev
  2. http://packages.ubuntu.com/search?searchon=names&keywords=libqt4-opengl-dev

Введите это в вашей оболочке, чтобы проверить и при необходимости установить пакет.

$ dpkg -l | grep opengl
ii  libqt4-opengl                          4:4.8.0-1ubuntu11                       Qt 4 OpenGL module
$ aptitude install libqt4-opengl-dev
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...