Russian Qt Forum
Сентябрь 30, 2024, 18:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с линковкой Opengl  (Прочитано 4384 раз)
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

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

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


« Последнее редактирование: Декабрь 05, 2013, 19:52 от AlxAlex » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Декабрь 05, 2013, 19:44 »

Столкнулся с проблемой линковки gl в статической либе.
С какой именно проблемой? Их там может быть много. Улыбающийся
Записан
AlxAlex
Гость
« Ответ #2 : Декабрь 05, 2013, 19:55 »

Сообщение по ошибке отправил не дописанным, подредактировал.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #3 : Декабрь 05, 2013, 19:57 »

подключаю так: в pro потомков LIBS+=  ../../bin/libBaseClass.a
В pro файле потомков все равно придется делать:
Код:
QT       += opengl
или руками линковать нужные либы.
Записан
AlxAlex
Гость
« Ответ #4 : Декабрь 05, 2013, 20:01 »

да, в потомках opengl линкуется.
При сборке базового ошибок нет.
При сборке потомков линкер ругается на gl-функции в базовом.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #5 : Декабрь 05, 2013, 20:18 »

При сборке потомков линкер ругается на gl-функции в базовом.
Т.е. происходит повторное определение функций opengl?
Записан
AlxAlex
Гость
« Ответ #6 : Декабрь 06, 2013, 09:23 »

вот что он выдает:
undefined reference to `_imp__glClear@4'
Т.е получается что к статической сборке -lopengl32 не линкуется. При указании ее в pro-файле LIBS+= -lopengl32
тоже ничего не выходит.
Собственно, если собирать ее динамической, то все проходит нормально, gl линкуется.
Есть ли способ заставить собрать стат. либу с gl ?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #7 : Декабрь 06, 2013, 09:49 »

Есть ли способ заставить собрать стат. либу с gl ?
В статическую библиотеку нельзя влинковать разделяемую библиотеку.
Записан
AlxAlex
Гость
« Ответ #8 : Декабрь 06, 2013, 09:57 »

да, это я уже понял. Придется реализовывать ч\з динамическую.
Тему можно зарыть.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.128 секунд. Запросов: 23.