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