![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Litkevich Yuriy |
![]() ![]()
Сообщение
#1
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Решил разделить приложение на EXE-шник и DLL-ку.
При компиляции DLL-ки столкнулся с проблемой. Код DLL-ки использует (получает через указатель) некий класс Config, который также используется (и создаётся) основным кодом. При компиляции DLL-ки возникают ошибки типа: undefined reference to `Config::foo()`, т.к. в проект DLL-ки включены только соответствующие заголовочники. Как можно собрать проект DLL-ки, чтобы невкомпиливать код класса Config в DLL-ку. |
|
|
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
вроде это называется "шаблон проектирования Pimpl"
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Алексей, похоже, что pimpl не помошник, тут ситуация такая:
Допустим в реализации класса Config используется указатель на класс QGraphicsScene, следовательно в проект dll-ки придётся включать модуль Qt Widgets, хотя в самой DLL-ки в этом модуле нет нужды. |
|
|
Iron Bug |
![]()
Сообщение
#4
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
если твоя библиотека использует какой-то класс, то ты не можешь его не включать в неё. либо, если тебе не нужен весь класс, делай интерфейс, который этот конфиг реализует, и включай его.
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 16.2.2025, 15:27 |