Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ С\С++ _ Проблема с созданием DLL-ки

Автор: Litkevich Yuriy 6.7.2018, 10:30

Решил разделить приложение на EXE-шник и DLL-ку.
При компиляции DLL-ки столкнулся с проблемой.

Код DLL-ки использует (получает через указатель) некий класс Config, который также используется (и создаётся) основным кодом.

При компиляции DLL-ки возникают ошибки типа: undefined reference to `Config::foo()`, т.к. в проект DLL-ки включены только соответствующие заголовочники.

Как можно собрать проект DLL-ки, чтобы невкомпиливать код класса Config в DLL-ку.

Автор: Алексей1153 7.7.2018, 6:55

вроде это называется "шаблон проектирования Pimpl"

Автор: Litkevich Yuriy 9.7.2018, 9:54

Алексей, похоже, что pimpl не помошник, тут ситуация такая:
Допустим в реализации класса Config используется указатель на класс QGraphicsScene, следовательно в проект dll-ки придётся включать модуль Qt Widgets, хотя в самой DLL-ки в этом модуле нет нужды.

Автор: Iron Bug 10.7.2018, 0:41

если твоя библиотека использует какой-то класс, то ты не можешь его не включать в неё. либо, если тебе не нужен весь класс, делай интерфейс, который этот конфиг реализует, и включай его.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)