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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] как собрать библиотеку с одним лишь классом-интерфейсом?  (Прочитано 3233 раз)
unkeep
Гость
« : Декабрь 02, 2013, 10:52 »

как собрать библиотеку с одним лишь классом-интерфейсом?

IModulesService.h
Код
C++ (Qt)
#pragma once
 
namespace ModulesEditor {
namespace BLL {
 
class  IModulesService
{
public:
   virtual ~IModulesService() {}
   virtual void Test() = 0;
};
 
 
} // namespace BLL
} // namespace ModulesEditor
 
Q_DECLARE_INTERFACE(ModulesEditor::BLL::IModulesService, "ModulesService/1.0")
 

.pro
Код
C++ (Qt)
QT       -= gui
 
TARGET = ModulesEditorBLL
TEMPLATE = lib
 
DEFINES += MODULESEDITOR_BLL_LIBRARY
 
SOURCES +=
 
HEADERS += IModulesService.h\
       ModulesEditor_BLL_global.h
 
unix:!symbian {
   maemo5 {
       target.path = /opt/usr/lib
   } else {
       target.path = /usr/lib
   }
   INSTALLS += target
}

IModulesService.cpp отсутствует


:-1: предупреждение: LNK4001: no object files specified; libraries used
:-1: предупреждение: LNK4068: /MACHINE not specified; defaulting to X86

:-1: ошибка: LNK2001: unresolved external symbol __DllMainCRTStartup@12
debug\ModulesEditorBLL.dll:-1: ошибка: LNK1120: 1 unresolved externals

« Последнее редактирование: Декабрь 02, 2013, 11:40 от unkeep » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



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

как собрать библиотеку с одним лишь классом-интерфейсом?
Никак. В этом нет смысла. Достаточно одного хедера.
Записан
unkeep
Гость
« Ответ #2 : Декабрь 02, 2013, 11:14 »

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

Если я хочу иметь несколько реализаций этого интерфейса, мне придётся включать этот хедер в каждую из них, вместо использования библиотеки?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



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

Если я хочу иметь несколько реализаций этого интерфейса, мне придётся включать этот хедер в каждую из них, вместо использования библиотеки?
Достаточно сделать интерфейсы общими для всех слоев (вынести их в отдельную директорию, например) и просто подключать их в нужные исходники include.
Записан
unkeep
Гость
« Ответ #4 : Декабрь 02, 2013, 11:23 »

а если я хочу использовать этот интерфейс в разных приложениях?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



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

а если я хочу использовать этот интерфейс в разных приложениях?
Пожалуйста. Улыбающийся
Просто включайте эти хедеры в нужные файлы.
Пока в интерфейсе нет реальных методов, класть в библиотеку попросту нечего.
Записан
unkeep
Гость
« Ответ #6 : Декабрь 02, 2013, 11:39 »

я решил отойти от идеи интерфейса в пользу абстрактного класса унаследованного от QObject
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



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

я решил отойти от идеи интерфейса в пользу абстрактного класса унаследованного от QObject
Совсем немного осталось, чтобы дойти таки до Qt Plugin System.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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