Несколько общих библиотек из одного проекта с общими исходными файлами
У меня есть основное приложение, которым можно управлять динамически загружаемыми плагинами (.dll на win -.so на linux). Теперь я хочу создать много этих плагинов, где просто по-разному реализована функция.
Допустим, у меня есть следующие файлы в моем проекте:
- plugin.h
- plugin.cpp
- i001.cpp
i001.cpp содержит одну реализацию функции "run" моего класса плагинов. Теперь этот проект компилируется в "plugin.dll".
То, что я хочу достичь, это что-то вроде этого:
- plugin.h + plugin.cpp + i001.cpp -> i001.dll
- plugin.h + plugin.cpp + i002.cpp -> i002.dll
- plugin.h + plugin.cpp + i003.cpp -> i003.dll
- plugin.h + plugin.cpp + i004.cpp -> i004.dll
Есть ли простой способ получить эти результаты из одного проекта? Я использую Qt-Creator на Windows и Linux.
1 ответ
Есть два способа решения проблемы.
Вы должны использовать подпроекты. Распакуйте ваши общие исходные файлы в отдельный подпроект как статическую библиотеку. Больше информации здесь
Вы можете создать.pri файл:
SOURCES += plugin.cpp HEADERS += plugin.h
и включите его во все файлы.pro:
include(deployment.pri)