powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / [Qt] Правильный переход со статической линковки на динамическую
3 сообщений из 3, страница 1 из 1
[Qt] Правильный переход со статической линковки на динамическую
    #38553618
Alex the coder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно сабж, ОС - Windows. Имеется типичная Qt-программа, подключающая несколько самописных библиотек.
Вроде бы, я сделал всё согласно документации, однако после перехода на "динамику"(DLL) программа начала падать при выходе в кишках Qt (с read access violation).
Вот и думаю - раз при статической линковке такого не было, то что-то не так я сделал при переходе? собственно список моих действий:
1) добавил в каждую либу доступный клиентам заголовочный файл аля MyLib_global.h:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#include <QtCore/QtGlobal>

#if defined(MY_LIBRARY)
#  define MYLIB_EXPORT Q_DECL_EXPORT
#else
#  define MYLIB_EXPORT Q_DECL_IMPORT
#endif


2) В файл проекта библиотеки добавил
Код: plaintext
1.
DEFINES += MY_LIBRARY


3) В каждый подлежащий экспорту класс и глобальную функцию добавил MYLIB_EXPORT. Шаблоны при этом не трогал, благо они реализованы в заголовочных файлах и соотв. становятся inline.
В клиенте либа подключается так: LIBS += -L<каталог> -l<имя файла либы>, т.е. ровно как и static-версия оной.
Компиляция и линковка успешно отрабатывают.
Ну что здесь не так-то <_<
...
Рейтинг: 0 / 0
[Qt] Правильный переход со статической линковки на динамическую
    #38553637
Alex the coder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл еще win32:CONFIG += dll для файла проекта библиотеки (TEMPLATE=lib).
Компилятор - MSVC 2010, Qt 4.8.5
...
Рейтинг: 0 / 0
[Qt] Правильный переход со статической линковки на динамическую
    #38553804
Alex the coder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хы, проблема оказалась в стороннем компоненте, который некорректно отрабатывает при выгрузке библиотек (unloadUnusedLibraries).
Всем спасибо :D
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / [Qt] Правильный переход со статической линковки на динамическую
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]