Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: AlxAlex от Декабрь 05, 2013, 19:41



Название: Проблема с линковкой Opengl
Отправлено: AlxAlex от Декабрь 05, 2013, 19:41
Доброго времени суток.
Столкнулся с проблемой линковки gl в статической либе.
Структура проекта следующая:
Имеется базовый класс, наследуемый от QGLWidget он осуществляет стандартные для всех актеров действия.
Потомки базового, добавляют актеров для отрисовки.
Хотел перенести базовый класс в либу, но столкнулся с проблемой линковки.
Весь код привести не представляется возможным, вот псевдокод базового класса:
Код:
class BaseClass : public QGLWidget
public:
   void paintGL(){
      gl - функция.
      ф-я отрисовки всех атеров.
   }
 
Собственно, если перенести его в либу, она собирается, но при ее подключении не линкуются gl-функции.
BaseClass.pro
Код:
QT       += opengl
TARGET = BaseGraphics
TEMPLATE = lib
CONFIG += staticlib

подключаю так: в pro потомков LIBS+=  ../../bin/libBaseClass.a

заранее спасибо.

Извиняюсь, случайно отправил недописанным.




Название: Re: Проблема с линковкой Opengl
Отправлено: Old от Декабрь 05, 2013, 19:44
Столкнулся с проблемой линковки gl в статической либе.
С какой именно проблемой? Их там может быть много. :)


Название: Re: Проблема с линковкой Opengl
Отправлено: AlxAlex от Декабрь 05, 2013, 19:55
Сообщение по ошибке отправил не дописанным, подредактировал.


Название: Re: Проблема с линковкой Opengl
Отправлено: Old от Декабрь 05, 2013, 19:57
подключаю так: в pro потомков LIBS+=  ../../bin/libBaseClass.a
В pro файле потомков все равно придется делать:
Код:
QT       += opengl
или руками линковать нужные либы.


Название: Re: Проблема с линковкой Opengl
Отправлено: AlxAlex от Декабрь 05, 2013, 20:01
да, в потомках opengl линкуется.
При сборке базового ошибок нет.
При сборке потомков линкер ругается на gl-функции в базовом.


Название: Re: Проблема с линковкой Opengl
Отправлено: Old от Декабрь 05, 2013, 20:18
При сборке потомков линкер ругается на gl-функции в базовом.
Т.е. происходит повторное определение функций opengl?


Название: Re: Проблема с линковкой Opengl
Отправлено: AlxAlex от Декабрь 06, 2013, 09:23
вот что он выдает:
undefined reference to `_imp__glClear@4'
Т.е получается что к статической сборке -lopengl32 не линкуется. При указании ее в pro-файле LIBS+= -lopengl32
тоже ничего не выходит.
Собственно, если собирать ее динамической, то все проходит нормально, gl линкуется.
Есть ли способ заставить собрать стат. либу с gl ?


Название: Re: Проблема с линковкой Opengl
Отправлено: Old от Декабрь 06, 2013, 09:49
Есть ли способ заставить собрать стат. либу с gl ?
В статическую библиотеку нельзя влинковать разделяемую библиотеку.


Название: Re: Проблема с линковкой Opengl
Отправлено: AlxAlex от Декабрь 06, 2013, 09:57
да, это я уже понял. Придется реализовывать ч\з динамическую.
Тему можно зарыть.